折りたたみ関数 SML を使用してルックアップ関数を作成する
k がルックアップ テーブルのキーでない場合は NONE を返し、(k,v) がテーブルにある場合は (SOME (k,v)) を返す lookup(k, table) という標準 ML の関数を作成する必要があります。たとえば、lookup(3, [(1,4),(14,5),(7,3),(22,6]) は NONE で、lookup (1,[(1,4),(14,5) ,(7,3,(22,6)]) は (SOME (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 の問題のために髪を抜いています.