チャーチ数
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/07 20:45 UTC 版)
以下は、ラムダ計算の教科書などに見られる、自然数のチャーチ符号化(英語版)のコード例である。 let zero f x = xlet succ n f x = f (n f x)let one = succ zerolet two = succ (succ zero)let add n1 n2 f x = n1 f (n2 f x)let to_int n = n (fun k -> k+1) 0let _ = print (add (succ two) two) チャーチ数nは、高階関数として表され、関数fと値xを受け取りxにn回fを適用する関数として定義されている。チャーチ数nを自然数nに変換するには、チャーチ数(実体は関数)に、インクリメントする関数と初期値0を渡せばよい。MLは関数型言語であるため、数学的なプログラミングの理論そのままに、記述することができる。
※この「チャーチ数」の解説は、「OCaml」の解説の一部です。
「チャーチ数」を含む「OCaml」の記事については、「OCaml」の概要を参照ください。
- チャーチ数のページへのリンク