【发布时间】:2012-11-05 22:15:45
【问题描述】:
这是一个代码示例,我认为它可以在以列表形式实现的集合数据类型中正常工作:
fun newSet() = nilset;
fun isMember (k, x::xs) = if k = x then true else isMember (k, xs)
| isMember (k, nilset) = false;
问题是我无法将它实现为列表。下面是我的set的实现代码。
abstype ''a set = nilset | st of ''a * ''a set
如果:: 用于列表,我如何递归地执行此操作和其他设置操作?如果不是,为什么会抛出异常?当我使用:: 时,我得到了这个:
! Type clash: pattern of type
! ''a set
! cannot have type
! ''b list
感谢您的帮助。
【问题讨论】:
标签: sml ml abstract-data-type