• 追加された行はこの色です。
  • 削除された行はこの色です。
#ocamlbook#

#contents

標準ライブラリからの抜粋。これは説明したほうがいいんじゃね?というやつ。
- どのくらい詳しく解説するべきか…。長過ぎてもあれだし。 -- [[しもむら]] &new{2007-02-16 (金) 17:32:59};
- この章全体で30〜40ページくらいになるように考えてもらえればと思います。あと、関数を一つずつ解説しなくても、まとめられる所はまとめて下さっても結構です。例えば、ファイル入出力のopen,read,closeとか。 -- [[ogasawara]] &new{2007-02-18 (日) 04:19:08};

#comment

*Pervasives [#q59e1a2a]
http://ocaml.jp/archive/ocaml-manual-3.06-ja/libref/Pervasives.html

**例外 [#kf60eeec]
- raise
- failwith
- Failture
- Not_found

**整数演算 [#i4fbe312]
- abs
- mod

**浮動小数演算 [#d15ce771]
- (**)
- sqrt
- exp
- ceil
- floor
- int_of_float
- infinity
- neg_infinity
- nan

**文字列演算 [#z5e9dac3]
- (^)

** 文字演算 [#r58f643d]
- int_of_char
- char_of_int

** 文字列演算 [#tcc1a4e8]
- string_of_{bool,int,float}
- {bool,int,float}_of_string

** リスト演算 [#bcb9bc97]
- (@)

** 標準入出力 [#t44c4f9a]
- stdin/stderr/stdout
- print_string
- print_char
- print_int
- print_float
- read_line

** ファイル出力 [#p2b8d812]
- open_out
- output_string
- close_out

** ファイル入力 [#t936411d]
- open_in
- input_string
- close_in

* Listモジュール [#j81613de]
http://ocaml.jp/archive/ocaml-manual-3.06-ja/libref/List.html

- length

リストの長さを返します。
 # List.length [1;2;3];;
 - : int = 3
 # 

- hd
- hdとtl

リストの先頭要素を返します。
hdは、リストの先頭要素を返します。
 # List.hd [1;2;3];;
 - : int = 1
 # 
空リストに適用した場合には、例外を発生させます。
 # List.hd [];;
 Exception: Failure "hd".
 # 

- tl

リストの先頭要素を除いた残りを返します。hdと違い、返される値の型はリストになるので注意してください。
tlはhdの反対で、リストの先頭要素を除いた残りを返します。
 # List.tl [1;2;3];;
 - : int list = [2; 3]
 # 
こちらも、空リストに適用すると例外を発生させます。
 # List.tl [];;
 Exception: Failure "tl".
 # 

- rev

与えられたリストの要素の順番を反転したものを返します。
 # List.rev [1;2;3];;
 - : int list = [3; 2; 1]
 # 

- concat

与えられた"リストのリスト"を結合し、1つのリストにします。
 # List.concat [[1;2];[3;4];[5;6]];;
 - : int list = [1; 2; 3; 4; 5; 6]
 # 

- map

引数に関数とリストを取って、リストの各要素に関数を適用する関数です。関数型言語らしい関数ですね。
 # List.map Char.uppercase ['a';'b';'c'];;
 - : char list = ['A'; 'B'; 'C']
 # 
Charモジュールのuppercaseは、小文字を大文字に変える関数です。mapは、

mapとは写像のことで、この場合は、小文字の集合を大文字の集合に写像していることになりますね。

- fold_left

fold_leftは、畳み込み関数というものです。この関数は、畳み込みに使われる関数fと初期値とリストを取って、現在値とリストの要素を順にfを使って畳み込んでいきます。例えば、リストの要素の和を計算する関数sumは、次のように定義できます。
 # let sum numbers = List.fold_left (+) 0 numbers;;
 val sum : int list -> int = <fun>
 # sum [1;2;3;4;5];;
 - : int = 15
 # 
これは、次のように展開して考えるとわかりやすいかもしれません。
 sum [1;2;3;4;5] = (((((0+1)+2)+3)+4)+5)

- mem
- find
- filter
- sort

* Arrayモジュール [#y340cc92]
http://ocaml.jp/archive/ocaml-manual-3.06-ja/libref/Array.html

- length
- make
- init
- sub
- to_list
- of_list
- map
- mapi
- fold_left
- sort

* Printfモジュール [#y6650be9]
http://ocaml.jp/archive/ocaml-manual-3.06-ja/libref/Printf.html

- printf
- sprintf

* Hasttblモジュール [#n5f238e7]
http://ocaml.jp/archive/ocaml-manual-3.06-ja/libref/Hashtbl.html
- create
- clear
- add
- find
- fold

*Stream モジュール[#e563f928]
http://ocaml.jp/archive/ocaml-manual-3.06-ja/libref/Stream.html

[[streamの拡張構文:http://www.math.nagoya-u.ac.jp/~garrigue/papers/jssst-ocaml.html]]

- of_list
- of_string
- of_channel
- iter

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS