2013年10月27日日曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の2章(Python入門)の2.10(練習問題)、7をHaskellで解いてみる。

その他参考書籍

7.

コード(BBEdit)

Sample.hs

{-# OPTIONS -Wall -Werror #-}

main :: IO ()
main = mapM_  (\x -> putStrLn $ show (x :: Int) ++ " mpg: " ++
                              (show . convertMileage . fromIntegral) x ++ 
                              " l/100km")
              [20, 40]

convertMileage :: Double -> Double
convertMileage = (100/) . convertMpgToKmpl

convertMpgToKmpl :: Double -> Double
convertMpgToKmpl = (/gallonToLitre 1) . mileToKm

gallonToLitre :: Double -> Double
gallonToLitre = (3.78541178*)

mileToKm :: Double -> Double
mileToKm = (1.609344*)

入出力結果(Terminal, runghc)

$ runghc Sample.hs
20 mpg: 11.760729154239243 l/100km
40 mpg: 5.880364577119622 l/100km
$

0 コメント:

コメントを投稿