基本
リストの作成。
[] で囲み、要素は ; で区切る。
> let odds = [1;3;5;7;9]
let evens = [2;4;6;8;10];;
val odds : int list = [1; 3; 5; 7; 9]
val evens : int list = [2; 4; 6; 8; 10]
リストの追加。
@ はリストの結合を行う。
> let appended = odds @ evens;;
val appended : int list = [1; 3; 5; 7; 9; 2; 4; 6; 8; 10]
要素の追加。
:: はリストの先頭に要素を追加する。
> 0 :: appended;;
val it : int list = [0; 1; 3; 5; 7; 9; 2; 4; 6; 8; 10]
範囲を指定する。
1から10までの整数のリストを作成する。
> let x = [1..10];;
val x : int list = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
範囲と間隔を指定する。
1から10までの奇数のリストを作成する。
> let x = [1..2..10];;
val x : int list = [1; 3; 5; 7; 9]
要素を持たないリスト。
> let emptylist = [];;
val emptylist : 'a list
yield
リストの要素を何らかの手続きで決定させることができる。
> let near x =
[
yield x - 1
yield x
yield x + 1
]
let nearTen = near 10;;
val near : int -> int list
val nearTen : int list = [9; 10; 11]
引数の値とその前後の値を要素とするリストを返す関数 near を作成し、10を与えている。
上から順に評価されるので、10-1=9、10、10+1=11が要素となる。
[] の中には条件式やループ等も使用できる。
30以下の素数のリストを作成する例。
> let primes =
[
let factors n =
[
for i in 2..n-1 do
if n % i = 0 then
yield i
]
for i in 2..30 do
if List.length (factors i) = 0 then
yield i
];;
val primes : int list = [2; 3; 5; 7; 11; 13; 17; 19; 23; 29]