私の割り当てでは、次のタイプで2つの機能を実行する必要があります。
wt: trie -> (char list list -> ’a)-> ’a
aw: trie list -> (char list list -> ’a)-> ’a
しかし、私が持っているのはこれであり、それが同じものであるかどうか疑問に思っていました:
wt: 'a trie -> ('a list list -> ’a list list)-> ’a list list
aw: 'a trie list -> ('a list list -> ’a list list)-> ’a list list
これは私の機能です:
datatype ’a trie = Node of ’a * (’a trie) list | Empty
fun words_in_trie Empty cont = cont [[]]
| words_in_trie (Node (c, lis)) cont = all_words lis (fn j => map (fn y => [c]@y) j)