タグ

composeに関するkeyesberryのブックマーク (3)

  • Haskell で関数合成 (2)

    1 つの引数を取る関数を合成 一つの引数を取る関数を合成する場合、例えば、 *Main> (2*).(3+) $ 4 14 関数合成の定義 は、 (.) f g x = f (g x) よって、関数合成の部分を定義で置き換えると、 (2*).(3+) => \x -> 2 * (3 + x) これを 4 に適用すると、 (\x -> 2 * (3 + x)) 4 => 2 * (3 + 4) => 14 2 つの引数を取る関数と、1 つの引数を取る関数を合成 上記の関数合成 (.) の第 1 引数を、2 つの引数を取る関数 (*) に変更してみる。関数の型を調べると、 *Main> :t (*).(3+) (*).(3+) :: (Num a) => a -> a -> a 合成された関数が、2 つの引数を取る関数になったことがわかる。 この合成された関数を適当な値に適用してみる。 *Ma

    Haskell で関数合成 (2)
  • 「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記

    記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。 注意点として、この記事は、プログラマ厨二病のひとつである「ラムダ症候群(λ-Syndrome)」に罹患した患者にRubyを書かせると、どんなヒドいことになるか実例を示したものであり、けしてこのようなプログラミングスタイルを推奨するものではない。 なぜ関数合成? まず、なぜ関数合成が必要か、そのモチベーションを示す。 前回、単なるメソッド呼び出しや一引数の関数適用のためだけにブロックを記述する必要はない、という話をした。 だが、以下のようなSymbolのArrayがあり、各要素をto_sした上でupcaseしたい場合はどうするか? irb(main):003:0> arr = [:user, :entry, :article, :comment, :category] => [:user,

    「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記
    keyesberry
    keyesberry 2012/08/10
    ステキ
  • Gmail - 設定 - accounts

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • 1