一昨日の分書いてない、昨日の分書いてない、今日の分書いてない・・・・・
そしてどんどん難しくなっていくScalazネタ。
実際危ない!
Apply
Applyは名の通り適用のための型クラスです。
しかし、ただ関数に値を適用するものではなく、コンテナ内の関数にコンテナ内の値を適用します。
FunctorBindApplyはApplysに定義されています。
FunctorとBindを暗黙的にとり、Applyを返します。
<*>, <**>, <***>, <****>, <*****>
Functorではmap、Bindでは>>=と代表する関数がありますが、Applyでは<*>です。
これは<*>の場合は先程の例の通りですが、<**>からはコンテナと関数、implicit parameterにFunctorをとります。
*が増えるごとに、コンテナの数、関数の引数が増えていきます。
ただし、値がNilやNone, Leftなどが含まれている場合はその値が返ります。
<|*|>, <|**|>, <|***|>, <|****|>
コンテナをわたし、コンテナに包まれたタプルを返します。
ただし、値がNilやNone, Leftなどが含まれている場合はその値が返ります。
*>, <*
>, <が指す値を返します。
ただし、値がNilやNone, Leftなどが含まれている場合はその値が返ります。
コピーアンドペースト重点。
これらの関数は型により動作が変わりますが、大体の型はこのような動きをします。
0 件のコメント:
コメントを投稿