Sml 数据类型问题中的标准ml函数
我必须创建一个关于peano数字的函数,定义为以下数据类型:Sml 数据类型问题中的标准ml函数,sml,ml,Sml,Ml,我必须创建一个关于peano数字的函数,定义为以下数据类型: datatype 'a peano = P of ('a -> 'a) * 'a -> 'a val zero = P(fn (f, x) => x) 我必须实现的函数查找peano参数的连续peano编号p(p)。这是我写的: fun suc (P(p)) = case P(p) of P(fn(f,x)=>x) => P(fn(f,x)=>f(x)); 问题是我得到了以下错误: stdIn:
datatype 'a peano = P of ('a -> 'a) * 'a -> 'a
val zero = P(fn (f, x) => x)
我必须实现的函数查找peano参数的连续peano编号p(p)
。这是我写的:
fun suc (P(p)) = case P(p) of P(fn(f,x)=>x) => P(fn(f,x)=>f(x));
问题是我得到了以下错误:
stdIn:4.33-4.36 Error: syntax error: deleting FN LPAREN
stdIn:4.43 Error: syntax error found at RPAREN
我不知道我做错了什么。请帮忙 此代码中存在许多问题。编译器抱怨的是你有一个函数定义
fn (f,x) => x
fun suc (P p) = ...
在箱
臂的左侧,仅允许图案
其他一些问题:
案例
表达式是多余的;在函数定义中
fn (f,x) => x
fun suc (P p) = ...
应该可以只使用p
进行计算,而无需任何更多的案例分析p
带有一个函数,因此如果您编写
fun suc (P f) = ...
并确保在结果中,f
应用于一对(根据数据类型声明的要求)这段代码中有许多问题。编译器抱怨的是你有一个函数定义
fn (f,x) => x
fun suc (P p) = ...
在箱
臂的左侧,仅允许图案
其他一些问题:
案例
表达式是多余的;在函数定义中
fn (f,x) => x
fun suc (P p) = ...
应该可以只使用p
进行计算,而无需任何更多的案例分析p
带有一个函数,因此如果您编写
fun suc (P f) = ...
并确保在结果中,f
应用于一对(根据数据类型声明的要求)