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

リスト

x : xs (cons) null xs xs ++ ys (append) 数列表記 ".."を使って等差数列を記述 [1..7] -- [1, 2, 3, 4, 5, 6, 7] ['a'..'e'] -- ['a', 'b', 'c', 'd', 'e'] [1, 3..11] -- [1, 3, 5, 7, 9, 11] [1..] -- [1, 2, 3, 4, ....] [1, 3..] -- [1, 3, 5, 7, ....…

タプル

値の組。例: (1, "hoge") , (True , 't') .. fst :: (a, b) -> a snd :: (a, b) -> b zip :: [a] -> [b] -> [(a, b)] # lengthは短い方に揃えられる unzip :: [(a, b)] -> ([a], [b]) ユニット 0要素のタプル

文字・文字列

Char Charモジュールの関数 テスト( Char -> Bool ) : isAlpha , isLower , isUpper , isAlphaNum , isDigit , isHexDigit , isOctDigit : isSpace , isAscii , isLatin1 , isPrint , isControl 変換 : toLower , toUpper : ord , chr String Haskellでは[Ch…

数値

整数型 Int : 処理系依存。GHCは32bitの符号付整数値 Integer : 範囲制限無し 浮動小数点数型 Float Double リテラル 8進表記: 0o644 (ぜろおー) 16進表記: 0xff (ぜろえっくす) リテラルがInt/Integer または Float/Double のどれに決まるかは文脈依存 数値…

真偽値

data Bool = True | False deriving (Eq, Ord, ...) : not x , x && y , x || y

primitive

第一級の値(first-class value)、変数束縛の対象となるもの 真偽値 ( Bool ) 数値 ( Int, Integer, Float, Double ) 文字 ( Char ) 文字列 ( String = [Char] ) タプル ( (a, b) ) ユニット ( () ) リスト ( [a] ) 関数 ( a -> b )