Subscribed unsubscribe Subscribe Subscribe

モナドとシェル

Haskell

モナド

  1. (return x) >>= f == f x
  2. m >>= return == m
  3. (m >>= f) >>= g == m >>= (\x -> f x >>= g)

はbindをパイプ、returnをcat、fをgrep hogeなどの適当なコマンドとすると、

  1. cat x | grep hoge == grep hoge x
  2. grep hoge x | cat == grep hoge x
  3. (cat x | grep hoge) | grep fuga == cat x | (grep hoge | grep fuga)

とっても似ている。