モナドに関するjacksevenのブックマーク (1)

  • Perlでモナドを学ぶ - Maybeモナド編 - Pixel Pedals of Tomakomai

    Maybeモナドの実装です。 簡単な解説 Maybeモナドの関手のT_objectは、渡された集合に対して、すべてをリファレンス化した集合にundefを加えたものに移します。こうすることによって、元々持っていた値を全て表現すると同時に新しいundefと言う値を手に入れられます。undefがHaskellのNothingとなります。 実装 リファレンスをとる処理がうざかったので、ヘルパー関数にまとめました。こいつの名前をjustにしたので、Haskellっぽくなりました*1。 sub just { my $value = shift; return \$value; } my $list_monad = Monad->new( T_arrow => sub { my $arrow = shift; # A -> B return sub { my $tx = shift; # TA -> T

    Perlでモナドを学ぶ - Maybeモナド編 - Pixel Pedals of Tomakomai
  • 1