少年易酔學難成

酒に交われば朱くなる

{1,2,3,5,7}みたいなリストを"1-3,5,7"に変換する

電車で移動中にタイムラインに流れて来てちょっと面白そうだということで実装してみた。 {1,2,3,5,7}みたいな配列(またはリスト)を“1-3,5,7”に変換するってのを書かなきゃいけない。逆の変換はそう難しくないのだけど。どう書こうかな。— いくた♥️なお/2日…

traverseとsequenceをめぐる冒険

事の発端 Scalaを書いているとビジネスロジックの結果の合成などでEitherやValidationのsequenceメソッドが欲しい!ということがあります。 ちょうど今のプロジェクトでもそういう声が結構あって、「これ、進研ゼミでやったぞFP in Scalaで書いたぞ!」と思…

play-jsonについて学ぶ(2)

Readsをどのように書くか 前回のエントリでplay-jsonのReads/Writesの意味とPlay Frameworkでの使い方を確認したので、実際にReads/Writesをどのように書くかを考えてみる。 今回はReads。 愚直にReadsを書く JsValue => Aの処理を最も愚直に書けば以下のよ…

play-jsonについて学ぶ(1)

目的 現在のプロジェクトではJSONライブラリとしてplay-jsonを(play scalaと共に)使用している。 play-jsonはドキュメントは豊富なのでググれば大抵の問題は解決できて便利なのだけれども、ググってもやり方が見つからない場合は解決に時間がかかってしまっ…

S-99: Ninety-Nine Scala ProblemsのP07を末尾再帰にするだけの正月だった

昨年大晦日から、少しずつS-99: Ninety-Nine Scala Problemsに取り組んでいる。 取り組み方は色々あると思うが、個人的に設定したルールは以下の二つ。 Listのコンストラクタ(Nil or ::)以外は自作する なるべく末尾再帰にこだわる(なぜ末尾再帰にこだわるか…

AutoHotKey事始

勤務先の個人用PCがシンクライアント+仮想デスクトップに移行するため、このままでは英字配列のHHKBが使えなくなってしまう。 対応策として、以下の二点を考え付いた。 HHKBとシンクラの間で物理的にJP配列を英字配列に変換する 仮想デスクトップ上のアプリ…

JavaScriptで文字コード値⇔文字列変換

作成中のアプリにてエラーメッセージが文字コードで出力されたので、文字列に変換する処理を書いてみた。 /** * 文字コード値→文字列 */ function (cd) { var cdArr = cd.replace(/\\u([0-9a-fA-F]{1,4})/g, function () { return parseInt(arguments[1], 16…