Scala
5月から1年ぶりにScalaを使った開発が始まりました。 1年ぶりにScalaを触った感想は、「思った以上に忘れてる、ヤバイ」でした。 せっかくまたScala触れたのだから、今度はわすれないよう、日々のScala開発で感じたことやハマったことをメモしていこうと思い…
Elixirのパイプライン演算子が羨ましくなったので作ってみました。 と言っても、こいつ↓でオブジェクトにパイプライン演算子を生やすだけです。 implicit class Pipe[A](value: A) { def |>[B](f: A => B): B = f(value) } こんな感じでかけます。 List(List…
※ この記事はアルゴリズムに詳しくない人が自分の思考の記録のために書いた記事です。 なので書いた内容が合っているかは確証が持てません。 「大間違いだよ、馬鹿野郎!」というツッコミは大歓迎します。 突然どうした 現在、自分はプロジェクトでScalaを使…
電車で移動中にタイムラインに流れて来てちょっと面白そうだということで実装してみた。 {1,2,3,5,7}みたいな配列(またはリスト)を“1-3,5,7”に変換するってのを書かなきゃいけない。逆の変換はそう難しくないのだけど。どう書こうかな。— いくた♥️なお/2日…
事の発端 Scalaを書いているとビジネスロジックの結果の合成などでEitherやValidationのsequenceメソッドが欲しい!ということがあります。 ちょうど今のプロジェクトでもそういう声が結構あって、「これ、進研ゼミでやったぞFP in Scalaで書いたぞ!」と思…
Readsをどのように書くか 前回のエントリでplay-jsonのReads/Writesの意味とPlay Frameworkでの使い方を確認したので、実際にReads/Writesをどのように書くかを考えてみる。 今回はReads。 愚直にReadsを書く JsValue => Aの処理を最も愚直に書けば以下のよ…
目的 現在のプロジェクトではJSONライブラリとしてplay-jsonを(play scalaと共に)使用している。 play-jsonはドキュメントは豊富なのでググれば大抵の問題は解決できて便利なのだけれども、ググってもやり方が見つからない場合は解決に時間がかかってしまっ…
昨年大晦日から、少しずつS-99: Ninety-Nine Scala Problemsに取り組んでいる。 取り組み方は色々あると思うが、個人的に設定したルールは以下の二つ。 Listのコンストラクタ(Nil or ::)以外は自作する なるべく末尾再帰にこだわる(なぜ末尾再帰にこだわるか…