エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Stateモナドの使い道 純粋関数内で状態を扱う – mitsuji.org
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Stateモナドの使い道 純粋関数内で状態を扱う – mitsuji.org
System.Random について調べるコードを考えてみよう。 0から9までのランダムな整数を繰り返し生成すると... System.Random について調べるコードを考えてみよう。 0から9までのランダムな整数を繰り返し生成するとき、最初に5が現れるのが何回目か知りたいとする。 System.Random には randomRs という関数があり、型と範囲と乱数生成器を指定すると、ランダムな値の無限リストに評価される。 この関数とリストを操作する関数を使えば、下記のようにすっきり記述できる。 場合によってはこれで十分だろう。ただ、処理効率や可読性の面で、より手続き型に近い記述にしたい場面がありそうだ。 count :: R.RandomGen g => g -> Int -> Int count g n = length $ takeWhile (/=n) $ R.randomRs (0::Int,9) g -- -- trace version -- count' :: R.RandomGen g =