はじめてのHaskell(3)

expand.hs ver.0

if文

if 条件式 then 式1 else 式2

関数

関数 概要
(==) a->a->Bool: x==y (xとyの"内容"が等しいときTrueを返す)
main = do cs <- getContents
	  putStr $ expand cs

expand :: String -> String
expand cs = map translate cs

translate :: Char -> Char
translate c = if c == '\t' then '@' else c

expand.hs ver.1

関数

関数 概要
concat a -> [a] (リストのリストを連結して一つのリストにする)

例:[[1,2],[3],[4,5]] -> [1, 2, 3, 4, 5]
※concatはリストを一重減らすだけ。

main = do cs <- getContents
	  putStr $ expand cs

expand :: String -> String
expand cs = concat $ map expandTab cs

expandTab :: Char -> String
expandTab c = if c == '\t' then "       " else [c]

※String は [Char]