【发布时间】:2021-10-16 18:09:54
【问题描述】:
我正在尝试用 sml 编写一个函数,该函数接受一个函数并将其应用于列表中的所有元素。如果任何元素返回 NONE,则整个函数 eval 为 NONE,但如果任何元素返回 SOME v,则该元素被添加到累加器中。
最终的返回值是累加器的一些。现在我遇到了两个错误。
- hw4.sml:93.21-95.67 错误:规则类型不一致 [tycon mismatch] 较早的规则:'Z 选项 -> 'Y 选项 这条规则:'Z 选项 -> 'X 列表 在规则: 一些 v => ((all_answers_helper ) xs') v @ acc
- hw4.sml:90.5-95.67 错误:子句右侧与函数结果类型不符 [tycon mismatch]
表达式:'Z 列表 -> 'Y 列表 -> 'Y 列表选项 结果类型:'Z 列表 -> 'Y 列表 -> 'Y 列表 在声明中: all_answers_helper = (fn arg => (fn => ))
fun all_answers_helper f xs acc =
case xs of
[] => SOME acc
| x::xs' => case f x of
NONE => NONE
| SOME v => all_answers_helper f xs' v @ acc
但我不知道我做错了什么。感谢所有帮助!
【问题讨论】: