使用折叠功能SML标准ML和查找表用查找功能
创建查找功能我需要建立一个功能标准ML称为查找(K,表)返回NONE如果k不是关键在查找表中并返回(SOME(k,v))如果(k,v)在表中。例如lookup(3,[(1,4),(14,5),(7,3),(22,6])为NONE,查找(1,[(1,4),(14,5) ,(7,3,(22,6)])是(有些(1,4))
,我想利用这个发现功能:
fun find pred [] = NONE
| find pred (x::rest) = if pred x then SOME x else find pred rest;
这是我到目前为止:
fun lookup(k,table) = NONE
| lookup(k, find(k,table)) =
if k = SOME then SOME else NONE;
请帮助我,我一直在拉出头发,因为这个问题ML
那么什么不适合你?我会注意到,你的语法有点不合适。包括'find(k,table)'使得它看起来像是在尝试模式匹配。另外,find函数会被curry,并且你试图以tupled形式使用它。也许你可以提炼出一些具体的问题,并发布特定的错误消息,如果你得到它们。 – Gian