我对 OCaml 非常陌生,并且很难实现一系列功能来构建 T9 预测文本程序。例如,如果我的词是“Dog” - 作为整数列表将是 [3;6;4]。我已经有一个模式匹配函数来将单词与 int 列表相关联。我正在使用数据类型 trie 将数字映射到可能的单词结果:
type ('a, 'b) trie = Node of 'b list * ('a * ('a, 'b) trie) list
边缘用 'a 类型的键标记的树和用 'b 类型的单词列表标记的节点
我需要编写一个带有参数 trie 和边缘标签的函数,该函数在边缘的末尾返回一个 trie。
val trie_of_key : (’a, ’b) trie -> ’a -> (’a, ’b) trie = <fun>
如何遍历边缘到达给定节点?函数式编程仍然让我迷惑,所以我不确定到达预期的子树所需的递归步骤。