我正在尝试在SML中编码并面对以下列出的问题 我制作了N-Ary树并且变量tr存储了创建的树的值。SML n-ary树中的非详尽搜索错误
val tr =node([leaf "x", node([leaf "y", leaf "x" , leaf "z"])]);
功能猫是什么,我希望将打印所有的叶子节点的值。 但我得到一个非详尽的搜索警告,它不起作用。
fun cat (node ([node t1 , node t2])) = cat(node t1) ^" "^cat(node t2) | cat (node ([leaf x, node t1])) = x ^" "^cat(node t1) | cat(leaf x) = x
下面是N叉树我的数据结构
datatype 'a ntree = leaf of 'a | node of 'a ntree list;
的误差得到的是如下
`val tr = node [leaf "x",node [leaf "y",leaf "x",leaf "z"]] : string ntree
.\printValues.sml:14.5-16.20 Warning: match nonexhaustive
node (node t1 :: node t2 :: nil) => ...
node (leaf x :: node t1 :: nil) => ...
leaf x => ...
val cat = fn : string ntree -> string
- cat(tr);
uncaught exception Match [nonexhaustive match failure]
raised at: .\printValues.sml:16.20`
`
我怎样才能解决这个问题?相反,请指出如何继续进行调试的方向。
你能在这里发布完整的代码吗?我无法得到这里第一个定义的内容。 – CyprUS
@CyprUS我认为这可能是作业,所以我没有给出完整的代码。我编辑它来填写细节。 –
不,它不是作业:)它是好奇心 – CyprUS