2006-09-24から1日間の記事一覧

三章のまとめ

関数 map f xs concat xs concatMap f xs replicate n x a == b

map関数

{- Haskell -} map :: (a -> b) -> [a] -> [b] map f [] = [] map f (x:xs) = f x : map f xs (* OCaml *) let rec map f = function [] -> [] | x :: xs -> f x :: map f xs

expand

ver.0(タブを'@'に置換) 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 高階関数 引数に関数を取る if式 それ自体が値…

Haskell OCaml 整数 Int int 文字 Char char 文字列 String = [Char] string 真偽値 Bool(True) bool(true) 型aのリスト [a] ([1, 2, 3]) a list ([1; 2; 3]) 型変数 (a, b, c) ('a, 'b, 'c) ※ ()内はリテラルの例多相型: 型変数を含む型 型宣言 {- Haskell …