2013年12月15日日曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の12章(各種ツール)、12.7(練習問題)、12-11.をHaskellで解いてみる。

その他参考書籍

12.7(練習問題)、12-11.

コード(BBEdit)

Sample.hs

{-# OPTIONS -Wall -Werror #-}

main :: IO ()
main = do
    print $ if (length $ removeAll emptyList "He") == 0
            then True else False
    print $ if (length $ removeAll oneItemList "He") == 0
            then True else False
    print $ if (length $ removeAll oneItemList "Pb") == 1
            then True else False
    print $ if (length $ removeAll multiItemList "He") == 2
            then True else False

removeAll :: [String] -> String -> [String]
removeAll xs x = filter (x/=) xs

emptyList :: [String]
emptyList = []

oneItemList :: [String]
oneItemList = ["He"]

multiItemList :: [String]
multiItemList = ["Ne", "Ar", "He", "He"]

入出力結果(Terminal, runghc)

$ runghc Sample.hs
True
True
True
True
$

慣れるまでは{-# OPTIONS -Wall -Werror #-}の記述を消さずに細かく型を指定していくことに。

0 コメント:

コメントを投稿