Scala
はじめに ExecutorService ThreadPoolExecutor ForkJoinPool ThreadPoolExecutor vs ForkJoinPool ExecutionContext これから知りたいこと はじめに Scalaの ExecutionContext について調べていたのですが、JVMのスレッドプール周りの知識が必要だと思ったの…
何の記事か こちらの『Scala Design Patterns』の11章前半です。 Scala Design Patterns: Design modular, clean, and scalable applications by applying proven design patterns in Scala, 2nd Edition (English Edition)作者:Nikolov, IvanPackt Publishi…
何の記事か Scala Design Patterns で例として挙げられていた Optionモナドを、 cats.Monad を用いて書き換えてみます。以前 Scala Design Patterns のモナドに関する章を噛み砕いで追いました。 hiramekun.hatenablog.com では cats の Monad を使うとどの…
はじめに Monad の定義 本の中の定義 Functorsとは Monadとは flatMap, unit, map モナド則 何が嬉しいのか 具体例 Optionモナド IOモナド はじめに 『Scala Design Patterns』 という本を、会社の輪読会で呼んでいるのですが、モナド周りの説明が難しかった…
リスコフの置換原則と、それに関係の深いScalaにおける共変反変について理解が浅かったのでまとめてみました。まとめてみたものの、未だに分かりづらいので、またアップデートします。
複数変数の初期化 複数行の読み込み Array.fill 複数変数の初期化 例えば、1 2 3のように空白区切りで3つの標準入力を受け取るために、次のようなコードをよく書きます。 val sc = new Scanner(System.in) val v, e, r = sc.nextInt() これは左辺の変数の個…
C++で書いたライブラリをScalaで書き直しています。ダイクストラ法全体として以下のようなコードになりました。 case class Edge(to: Int, w: Long) case class Graph(n: Int) { val g: Array[Array[Edge]] = Array.fill(n)(Array.empty) def push(from: Int…
結論 Ordered[T] は自身に継承し、比較可能にする Ordering[T] は自身を変えることなく、外側から変換を提供する gist.github.com Ordered[T] 例えば、単純に比較するだけのクラスを作る。このクラスは Ordered[T] を継承していて、compareメソッドを実装す…
Akka実践バイブルを読んでいるので、自分の印象に残ったところをメモ程度にまとめます。こちらは後編です。
Akka実践バイブルを読んでいるので、自分の印象に残ったところをメモ程度にまとめます。
scanLeftはfoldLeftの途中経過の値を保持するような関数。 これを使えば、累積和の計算が簡単にできる。 初期値が一番最初に挿入されるので、元の配列より大きさが+1されていることに注意する。 val a = Array(1, 2, 3) val d = a.scanLeft(0L)(_ + _) print…
始めに 今までC++で競技プログラミングをしてきたのですが、業務でScalaを書いていることもあり、ScalaでAtCoderを解いてみようと思います。大半が解いたことある問題かつ、目的はScalaに慣れることなので、解説は省いています。 勉強途中であることもあり、…
始めに 今までC++で競技プログラミングをしてきたのですが、業務でScalaを書いていることもあり、ScalaでAtCoderを解いてみようと思います。大半が解いたことある問題かつ、目的はScalaに慣れることなので、解説は省いています。 勉強途中であることもあり、…
始めに 今までC++で競技プログラミングをしてきたのですが、業務でScalaを書いていることもあり、ScalaでAtCoderを解いてみようと思います。大半が解いたことある問題かつ、目的はScalaに慣れることなので、解説は省いています。 勉強途中であることもあり、…
始めに 今までC++で競技プログラミングをしてきたのですが、業務でScalaを書いていることもあり、ScalaでAtCoderを解いてみようと思います。大半が解いたことある問題かつ、目的はScalaに慣れることなので、解説は省いています。 勉強途中であることもあり、…