2013年11月16日土曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の8章(ファイル処理)、8.8(練習問題)、1.をHaskellで解いてみる。

その他参考書籍

8.8(練習問題)、1.

コード(BBEdit)

Sample.hs

{-# OPTIONS -Wall -Werror #-}

main :: IO ()
main = do
    contents <- readFile "Sample.hs"
    putStrLn "myReverse"
    putStrLn $ myReverse contents
    putStrLn "reverse"
    putStrLn $ reverse contents

myReverse :: [a] -> [a]
myReverse = foldr (\x -> (++[x])) []

入出力結果(Terminal, runghc)

$ runghc Sample.hs
myReverse
][ ))]x[++( >- x\( rdlof = esreveRym
]a[ >- ]a[ :: esreveRym

stnetnoc esrever $ nLrtStup    
"esrever" nLrtStup    
stnetnoc esreveRym $ nLrtStup    
"esreveRym" nLrtStup    
"sh.elpmaS" eliFdaer -< stnetnoc    
od = niam
)( OI :: niam

}-# rorreW- llaW- SNOITPO #-{
reverse
][ ))]x[++( >- x\( rdlof = esreveRym
]a[ >- ]a[ :: esreveRym

stnetnoc esrever $ nLrtStup    
"esrever" nLrtStup    
stnetnoc esreveRym $ nLrtStup    
"esreveRym" nLrtStup    
"sh.elpmaS" eliFdaer -< stnetnoc    
od = niam
)( OI :: niam

}-# rorreW- llaW- SNOITPO #-{
$

{-# OPTIONS -Wall -Werror #-}を記述してるから、細かく型を指定(:: Double)しないと警告がいっぱい出た。慣れるまでは{-# OPTIONS -Wall -Werror #-}の記述を消さずに細かく型を指定していくことに。

0 コメント:

コメントを投稿