我有一个任务,我需要使用以下数据类型在 SML 中实现教堂数字:datatype 'a Church = C of ('a -'a) * 'a -> 'a
我必须编写函数 create :int -> 'a Church 和函数 ChurchToint 到目前为止,我有以下代码:
datatype 'a church = C of ('a -> 'a) * 'a -> 'a
val ZERO = C(fn (f,x) => x)
fun subCreate 0 (f,x) = x
| subCreate n (f,x) = f (subCreate (n-1) (f,x))
fun create n = C(fn (f,x) => subCreate n (f,x));
fun churchToInt cn = cn (fn x => x + 1) 0;
我知道我很接近。您能帮我正确实施吗?谢谢