Skip to content

Latest commit

 

History

History
117 lines (102 loc) · 2.77 KB

cheatsheet.md

File metadata and controls

117 lines (102 loc) · 2.77 KB

Haskell勉強会謹製ちーとしーと

対話モードコマンド

コマンド 説明
:l ファイル名 ファイルをロード
:r ファイルのリロード
:t val valの型を調べる(:typeでも可)

説明
0 整数
0.0 小数
True 真偽値 True/False
"0" 文字列 ダブルクオーテーションで囲む

制御構文

  • if
if 真偽値
then
else

演算子

優先順位 演算子 結合 説明
    |not     |        |論理否定 "でない"
    |*       |        |かけ算
    |/       |        |わり算(わられる数/わる数)
    |+       |        |たし算
    |-       |        |ひき算
    |==      |        |等価
    |/=      |        |不一致
    |&&      |        |論理積 "かつ"
    ||| |        |論理和 "または"

関数

定義

  • 関数名 引数 =
  • 関数名 :: 引数の型 -> 戻り値の型 -- 型の定義
  • 関数名 引数1 引数2 = 式

呼び出し

  • 関数名 引数
  • 関数名 引数1 引数2

中置

  • 引数1 関数名 引数2
  • 記号だけで構成された関数はバッククオーテーションで囲まなくても中置関数になる。

リスト

[4, 8, 15, 16, 23, 32]
[4, 8, 15, 16] ++ [23, 32]
4:[8, 15, 16, 23, 32]
4:8:15:16:23:32:[]
[1..100]
[1..]
-- 等差数列の先頭20個
take 20 [1,3..]
-- 内包表記
[x*2 | x <- [1..10]]
-- 熟語
[x | x<-[1..10], x `mod` 2 == 0]
[x + y | x<-[1..5], y<-[(-10),(-20)..(-50)]]

演算子

演算子 説明
L1 ++ L2 リスト同士の結合
c:L リストの先頭に要素を追加する
L !! n n番目の要素を取り出す(0〜)
head L 先頭要素を取り出す
tail L 先頭要素を除いたリスト
last L 末尾要素
init L 末尾要素を除いたリスト
length L 要素数を取り出す
null L 空リストかどうか判定
take n L 先頭n個のリスト
drop n L 末尾n個のリスト
maximum L 最大値を戻す
minimum L 最小値を戻す
sum L 和を計算する
product L 積を計算する
elem c L リストに要素が含まれているかどうか判定

タプル

(1, 2, 'a')
  • 2要素でペア
  • 3要素でトリプル

延々続く処理を止める: control + c

型クラス 何ができる?
Eq ==, /=
Ord <, >, <=, >=, min, max
Show show(文字列にできる)
Read read(文字列からインスタンスに変換できる)
Enum .., succ(次の要素)
Bounded minBound, maxBound

数に関する型クラス

  • Num
  • Integral
  • Int(型)
  • Integer(型)
  • Floating
  • Float(型)
  • Double(型)