関数型プログラミング
C#(.net6.0)でStreamReaderで読み込んだテキストファイルの行ごとのEnumerableリストを生成する拡張メソッドStreamReader.ReadAllLinesを定義します。 public static IEnumerable<string> ReadAllLines(this StreamReader it) { string? line; while ((line = it.Rea</string>…
C#(.net6.0)でFunc<T>型の生成メソッドを使ってEnumerableの無限リストを作成するメソッドを定義します。 public static IEnumerable<T> Generate<T>(Func<T> supplier) { while (true) yield return supplier(); } 生成メソッドsupplierに非同期メソッドを使いたい場合</t></t></t></t>…
目次 $ \sqrt{N} $までの自然数で試し割り $ \sqrt{N} $までの素数で試し割り エラトステネスの篩 速度比較 計算量・メモリ消費 JavaのStreamAPIを使って2から自然数Nまでの素数列挙をしてみます。 実装できたのは試し割りによる普通のアルゴリズムです。(…
StreamAPIを使えばjavaでも末尾再帰最適化(Tail-Call Optimization)ができるぞという本( Javaによる関数型プログラミング ―Java 8ラムダ式とStream | Venkat Subramaniam, 株式会社プログラミングシステム社 |本 | 通販 | Amazon 。英語版のpdfが無料でネッ…