使用折叠函数 SML 创建查找函数
我需要在标准 ML 中创建一个名为 lookup(k, table) 的函数,如果 k 不是查找表中的键,则返回 NONE,如果 (k,v) 在表中则返回 (SOME (k,v))。例如lookup(3, [(1,4),(14,5),(7,3),(22,6]) 是NONE,而lookup (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 问题,我一直在拔头发。