Skip to content

Instantly share code, notes, and snippets.

Created July 17, 2015 13:07
Show Gist options
  • Save anonymous/9d13ea4695c27210fd32 to your computer and use it in GitHub Desktop.
Save anonymous/9d13ea4695c27210fd32 to your computer and use it in GitHub Desktop.
worldcomponent 関数リファレンス

worldcompont

この文書は非常に難解な『関数ライブラリ』であるworldcomponentのリファレンスだ。このライブラリを使うことで、ライブラリ作者が推奨する『FRP』が実現可能になる。しかし、その基礎部分は高度な哲学的理論により構成されているため、使いこなすにはIQ145以上の頭脳が必要であり、一般人には理解することすら不可能であろう。

※ここでの『関数ライブラリ』や『FRP』という用語はライブラリ作者独自の概念が含まれており、一般的な意味とは異なることに注意されたい。

関数リファレンス

worldcomponent.log(msg)

文字列msgを出力する関数を返す。console.log.bind(console, msg)と書いた場合と全く同じ動作になる。

worldcomponent.world = func

関数funcを評価する。func()と書いた場合と全く同じ動作になる。ただし、関数の戻り値を取得する方法や引数を渡す方法はない。

worldcomponent(init)

状態statをラップしたオブジェクトを返す。以下、このオブジェクトをworldobjと表記する。worldobjは状態を表すstateと関数の配列computingFを保持する。stateの初期値はundefinedであり、initではない。

worldobj.compute(func)

関数funcを配列computingFの末尾の追加し、worldobj作成時に指定した初期値initを状態state破壊的代入する関数を返す。破壊的代入後にこれまで配列computingFに追加された全てのfunc(今回追加されるfuncを含む)を初期値initを引数として評価し、その戻り値でできた配列を作成する。ただし、作成された配列は使われることはなく、そのうちGCに回収される。返される関数を評価したときに戻り値はない。

worldobj.appear(value)

valueを状態state破壊的代入する関数を返す。破壊的代入後にこれまで配列computingFに追加された全てのfuncvalueを引数として評価すし、その戻り値できた配列を作成する。ただし、作成された配列は使われることはなく、そのうちGCに回収される。返される関数を評価したときに戻り値はない。

worldobj.now()

状態stateを返す。他の二つと違い、関数を返すのではなく、即座に評価される。また、上記のようにworldobj自体が状態stateが変化するmutableなオブジェクトであるため、worldobj.now()が返す値は常に同じとは限らず、参照透過ではない。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment