1から10までのリスト

って OCaml ではどう書けばいいんだろう。
Haskell では簡単に [1..10] と書ける。

 Prelude> [1..10]
 [1,2,3,4,5,6,7,8,9,10]

これなら10といわずいくつまででも簡単だ。だけど OCaml こういう書き方はできないらしい。

 # [1..10];;
 Characters 4-6:
   [1..10];;
       ^^
 Syntax error
 # [1;;10];;
 Characters 2-4:
   [1;;10];;
     ^^
 Syntax error

ともかく関数を書いてみた。

 # let rec list_of_int f t =
     if f > t then [] else f :: list_of_int (f+1) t
   ;;
 # list_of_int 1 10;;
 - : int list = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]