05/12/15 20:45:16
LISPスレにIO関係の簡単なプログラムの例みたいなのがあったので
ちょっと変形してでもいいから Cleanで書いてみたんですが…適当過ぎました。
目標は以下の通り (Haskellはあまり良くはわかってません)
・モナドの持ち上げ(ここがわかってない)が必要そうな場所でも コンビネータで繋げられる
・ m >>= (\ v -> f v) のようにλを明示的に書かない(無駄を省く & LISPより簡潔に)
僕が書いた >>188 readFile と HaskellのreadFileは違うのでご注意。
>>209-211
ありがとうございます。
compileすらできなかったので助かりマックス。
Haskellなら超簡単に書けますね。
import Data.Char
import System.Environment
main = getArgs >>= mapM_ (\ fname -> readFile fname >>= putStr . map toLower)
infixr 6 >>>=
(>>>=) p1 p2 = \x -> p1 x >>= p2
--main = getArgs >>= mapM_ (readFile >>>= putStr . map toLower)