エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Stream.unfold/2 で無限 FizzBuzz - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Stream.unfold/2 で無限 FizzBuzz - Qiita
無限リストによるエラトステネスのふるい でも書いたが Stream を使うと Elixir でも遅延評価な無限リス... 無限リストによるエラトステネスのふるい でも書いたが Stream を使うと Elixir でも遅延評価な無限リストを扱うことができる。その Stream にあるコンストラクタ関数の一つであるところの unfold/2 を使うと、再帰的に処理を行いながらアキュムレータに結果を積んでいく・・・というよくあるパターンを、無限リストとして実装できる。 カッとなって無限に FizzBuzz するストリームを書いてみた。 fizzbuzz = fn {true, true} -> "FizzBuzz" {true, false} -> "Fizz" {false, true} -> "Buzz" {false, false} -> nil end fst = Stream.unfold(1, fn(n) -> res = case fizzbuzz.({rem(n, 3) == 0, rem(n,

