OCaml

練習問題 4.4 コンビネータ

練習問題 4.4

s k k が恒等関数として働く理由を s k k 1 が評価される計算ステップを示すことで説明せよ。

(* 練習問題 4.4 *)

(*
 * s k k が恒等関数として働く理由を s k k 1 が評価される計算ステップを示すことで説明せよ。
 *)

(* Kコンビネータ *)
let k x y = x;;

let test1 = k 23 45 = 23;;

let const17 = k 17;;

let test2 = const17 4.0 = 17;;

(* Sコンビネータ *)

let s x y z = x z (y z);;

let test3 = s k k 5 = 5;;

let test4 = s k k 1 = 1;;
(* s k k 1 -> k 1 (k 1) -> 1 *)