Haskell 最初のn歩 :演算子を調べる
Haskell始めました。
すぐ忘れちゃって、話にならんので構文メモ。
GHCi を使ってる。
・大文字、小文字を区別する。
計算系の基本演算子。全て関数らしい。
演算子(関数) | 例 | 備考 |
加算 + |
>1 + 2 3 |
文字の連結は+ではない。 文字列の場合は ++ |
減算 - |
>1 - 2 -1 |
|
乗算 * |
>1 * 2 2 |
|
除算 / |
>1 / 2 0.5 |
|
剰余 mod |
> mod 100 6 4 |
←は100 を6で割った余りは? 4 |
べき乗(累乗) ^ |
>10^2 100 |
← 10 の2乗は100 |
論理値 |
True False |
|
&& |
>True && False False |
|
|| |
>True || False True |
|
not |
>not False True |
|
等価比較演算子 == |
> 1 == 1 True >"ABC" == "ABC" True |
|
非等価演算子 /= |
> True /= False True |
!= ではない。 |
比較演算子 < > <= >= |
> 1 < 2 True
|
・書籍に出てくる関数一覧
関数 | 例 | 備考 |
succ |
>succ 10 >succ 'a' |
次の(大きい)値を返す |
pred |
>pred 10 >pred 'b' |
ひとつ前(小さい)の値を返す |
min | >min 10 1 1 |
小さい方を返す |
max | >max 3.4 100 100.0 |
大きい方を返す |
div | div 120 10 | 整数の除算を行い。商を返す |
式
文法 | 例 | 備考 |
if , then , else | >let abc x = if x > 100 then x * 2 else x / 10 >abc 10 1.0 >abc 100 10.0 |
|
リスト [] |
[1,2,3,10,11] | |
リストの連結 ++ |
>[1,2,3] ++ [ 10,11,12] [1,2,3,10,11,12] >"Hello" ++ " " ++ "Haskell!!" "Hello Haskell!!" >['H','e'] ++ ['l','l','o'] "Hello" |
|
: | >'I' : " love you." "I love you." >10 : [1,2,3,4] [10,1,2,3,4] |
リストの先頭に追加する 数、数のリスト |
リストの要素にアクセスする |
>"Michael Jordan" !! 6 >[1.2,2.6,100.1,123.9] !! 1 |
0から数えて6番目の文字を返す |
リストの比較< | ||
リストの比較> | ||
リストの比較== | ||
head | リストの先頭要素を取得する | |
tail | ||
last | ||
init | ||
length | リストの要素数を調べる | |
null | リストが空が調べる | |
reverse | リストを反転する | |
take | ||
drop | ||
maximum | ||
minimum | ||
sum | ||
product | ||
elem |
文法 | 例 | 備考 |
.. | >[1..5] [1,2,3,4,5] >['a'..'d'] ['a','b','c','d'] >[2,4..10] [2,4,6,8,10] |
等差数列を作れる。 ただし、公差は初項と第二項の差 |
cycle | ||
replicate | Prelude> replicate 3 5 [5,5,5] Prelude> replicate 4 ["abc"] [["abc"],["abc"],["abc"],["abc"]] |
第1引数:回数 第2引数:繰り返す要素 第1引数の回数分だけ第2引数のデータを繰り返し リストに格納して |
文法:リスト内包表記 | 例 | 備考 |
文法:タプル | 例 | 備考 |