gpt4 book ai didi

emacs - 在 sml 中,为什么会产生错误 : syntax error: deleting IN IF

转载 作者:行者123 更新时间:2023-12-01 13:18:18 31 4
gpt4 key购买 nike

我正在编写一个函数来确定树是否平衡。

fun balanced(tree) =
let
fun size tree =
case tree of
Lf => 0
| Br(xs,ys,zs) => 1 + size ys + size zs
fun depth tree =
case tree of
Lf => 0
| Br(xs,ys,zs) =>
let val l_count = 1 + depth ys
val r_count = 1+ depth zs
in
if l_count > r_count then l_count else r_count
end
in
if size(ys) = size(zs) andalso depth(ys) = depth(zs) then true
else if tree=Lf then true
else false
end;

但它会产生这些错误:

stdIn:829.18-829.20 Error: unbound variable or constructor: zs
stdIn:829.9-829.11 Error: unbound variable or constructor: ys
stdIn:829.48-829.50 Error: unbound variable or constructor: zs
stdIn:829.36-829.38 Error: unbound variable or constructor: ys

最佳答案

inend 之间

  in
if size(ys) = size(zs) andalso depth(ys) = depth(zs) then true
else if tree=Lf then true
else false
end;

您使用了以前从未定义过的yszs。您在 depthsize 函数中的 yszs 是这些函数的本地函数,对 平衡

关于emacs - 在 sml 中,为什么会产生错误 : syntax error: deleting IN IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52560059/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com