gomi_ningen乱数生成を純粋化する乱数の生成についての簡単な例を見てみよう。用意されているのでそれを使えば簡単だ。メソッドは呼び出しのたびに返ってくる値が異なる。状態が遷移していることが想像出来る。仮に乱数ジェネレータを直接扱うとしても、ジェネレータの状態を揃えてあげる必要がある。いった状態に対処するために、副作用を使用しないという原点に立ち返ろう。状態を遷移させるのではなく、新しい状態を返すという気持ちでやっていく。呼び出すと、値と新しいジェネレータを返すという感じになる。もとのジェネレータは状態遷移しない。何回呼び出しても、同じ値と新しいジェネレータが返ってくる。コードで表現すると次のようになる。}}こいつは以下のような挙動を示す。ステートフルなAPIと向き合う乱数生成の例で見たようなことと同じような方法で、すべてのステートフルAPIは純粋化できる。基本的には状態を遷移させるのではなく、値と新しい状態を返してやるという方針になる。普通にこれをやってみるとボイラープレートが多くて辛い気持ちになるだろう。対していろんな便利関数を定義してみる。「状態を遷移させるのではなく、値と新しい状態を返してやる」という方針が関数に明確に現れてきている。この部分は繰り返し出現するのですこし抽象化しよう。いうエイリアスを張り付ける。高階関数が定義できて、かつそれを用いて上で定義した関数などを実装できるようになる。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。