Haskell の基本型
(2008.8.18 新規作成。)
Prelude モジュールを中心として、基本的な型と主に使いそうな関数をまとめてみました。自分用のメモなので、説明はざっくりです。
基本型
Haskellの基本型には、次のようのものがあります。
| リテラル | 説明 |
|---|---|
| True, False | 真偽値 |
| 3 | 整数 -- 固定倍長整数Int, 任意倍長整数Integer |
| 2.0 | 実数 Float, Double, Rational |
| 'a' | 文字 Char |
| "abc" | 文字列 String |
| [1, 2, 3] | リスト List。値の型は同じでなければならない。 |
| ('a', 4) | タプル Tuple(組) |
Bool 型
真または偽を表します。数値などからBool型への暗黙の変換はありません。
data Bool = False | True
論理演算子はC言語スタイルです。
- (&&) :: Bool -> Bool -> Bool
- (||) :: Bool -> Bool -> Bool
- not :: Bool -> Bool
- (||) :: Bool -> Bool -> Bool
共通の演算子
いろいろな型で使える演算子は、EqクラスやOrdクラスで定義されています。
class Eq
- (==) :: a -> a -> Bool
- (/=) :: a -> a -> Bool
- != ではなく、/= なのが変わっている。ほかはC言語スタイルなのに。
class Ord
class Eq a => Ord a- compare :: a -> a -> Ordering
- compare x y は、x, y の大小関係をEQ, LT, GT で返す。x < y のときLT.
- (<) :: a -> a -> Bool
- (<=) :: a -> a -> Bool
- (>) :: a -> a -> Bool
- (>=) :: a -> a -> Bool
- max :: a -> a -> a
- min :: a -> a -> a
- (<=) :: a -> a -> Bool
- max, min は、二つの値を比較して、大きいほう/小さいほうを返す。
数値
なんかいっぱいある。
data Int data Integer data Float data Double data Rational = Ratio Integer class (Eq a, Show a) => Num a class (Num a, Ord a) => Real Integral Fractional Floating
文字、文字列
data Char data String = [Char]
文字列は、実装はともかく、Char の単なるリストなので、操作についてはリストに適用できる関数がそのまま使えます。
タプル
- fst :: (a, b) -> a
- タプルの最初の要素を得る。
- snd :: (a, b) -> b
- タプルの2番目の要素を得る。
3つ以上のタプルのときはどうやって取り出すの?