【发布时间】:2020-12-24 04:45:19
【问题描述】:
根据标题,尝试从以下函数返回一个字符串列表:
fun f (typ : 'Z list option ) : 'Z list =
case typ of
SOME x::xs' => x::xs'
终端反馈如下:
hw2_1.sml:62.28-62.34 错误:运算符和操作数不一致 [循环性] 运算符域:'Z * 'Z 列表 操作数:'Z * 'Z 选项列表 表达: x :: xs'
hw2_1.sml:61.5-62.34 错误:案例对象和规则不一致 [tycon mismatch] 规则域:'Z 选项列表 object: 'Z 列表选项 表达: (案例类型 of :: (SOME x,xs') => x :: xs')
它告诉我操作符域和操作数不一致...这是否意味着 Z' 列表选项 不映射到 SOME x::xs' 就它所表示的类型而言?我显然没有以正确的方式思考这个问题......如果有任何提示,我将不胜感激。
【问题讨论】:
-
在
SOME x::xs'中用括号括住x::xs'。因为SOME x::xs'被 SML 解释为(SOME x) :: xs'这不是你想要的。
标签: types functional-programming pattern-matching sml smlnj