Sml 在下面的小程序中消除synatax错误 datatype inttree=Empty | int*inttree*inttree的节点 有趣的插入(t,i)=如果t=Empty,那么节点(i,Empty,Empty) 否则,如果t=节点(j,l,r): 如果(i=j) 然后t else if(i

Sml 在下面的小程序中消除synatax错误 datatype inttree=Empty | int*inttree*inttree的节点 有趣的插入(t,i)=如果t=Empty,那么节点(i,Empty,Empty) 否则,如果t=节点(j,l,r): 如果(i=j) 然后t else if(i,sml,ml,Sml,Ml,语法错误是 datatype inttree = Empty | Node of int * inttree * inttree fun insert(t,i)= if t=Empty then Node(i,Empty,Empty) else if t=Node(j,l,r): if (i=j) then t else if (i < j) then Node(j,inser

语法错误是

datatype inttree = Empty | Node of int * inttree * inttree

fun insert(t,i)= if t=Empty then Node(i,Empty,Empty)
 else if t=Node(j,l,r):
        if (i=j) 
                 then t 
                 else if (i < j) 
          then Node(j,insert l i,r)
           else Node(j,l,insert r i)
stdIn:8.7-19.4错误:语法错误:删除ELSE ID stdIn:25.15-25.25错误:语法错误:删除趣味ID stdIn:25.32-25.36错误:语法错误:删除IF ID
格式正确,以下是您的函数:

stdIn:8.7-19.4 Error: syntax error: deleting ELSE ID stdIn:25.15-25.25 Error: syntax error: deleting FUN ID stdIn:25.32-25.36 Error: syntax error: deleting IF ID
fun插入(t,i)=
如果t=空,则
节点(i,空,空)
否则,如果t=节点(j,l,r):
如果(i=j),则
T
否则如果(i

你知道怎么了吗?如果t=节点(j,l,r):
没有与之匹配的
else
。此外,它应该有一个
然后
而不是冒号(
)。

格式正确,下面是您的函数:

stdIn:8.7-19.4 Error: syntax error: deleting ELSE ID stdIn:25.15-25.25 Error: syntax error: deleting FUN ID stdIn:25.32-25.36 Error: syntax error: deleting IF ID
fun插入(t,i)=
如果t=空,则
节点(i,空,空)
否则,如果t=节点(j,l,r):
如果(i=j),则
T
否则如果(i

你知道怎么了吗?如果t=节点(j,l,r):
没有与之匹配的
else
。而且,它应该有一个
然后
而不是冒号(
)。

噢,SML错误消息的乐趣

我将避开您的语法错误(参见Gabe的回答),并提出不同的解决方案

通过模式匹配,这个问题更容易(也更习惯)解决:

fun insert(Empty,i)=节点(i,Empty,Empty)
|插入(节点(j、l、r、i)=
(抱歉,如果语法不正确,我的SML有点生疏。)

我留下了一个案例让你填写,以免完全破坏你的乐趣。

哦,SML错误消息的乐趣

我将避开您的语法错误(参见Gabe的回答),并提出不同的解决方案

通过模式匹配,这个问题更容易(也更习惯)解决:

fun insert(Empty,i)=节点(i,Empty,Empty)
|插入(节点(j、l、r、i)=
(抱歉,如果语法不正确,我的SML有点生疏。)

我留了一个案例让你填写,以免完全破坏你的乐趣。

你看到了什么语法错误?这不是你的完整程序。您必须告诉我们这些错误在您的程序中的位置。我无法理解为什么这个程序没有完成。您的错误消息显示第8、19和25行。你只发布了9行代码。这意味着您没有发布您试图编译的完整程序。您看到了哪些语法错误?这不是您的完整程序。您必须告诉我们这些错误在您的程序中的位置。我无法理解为什么这个程序没有完成。您的错误消息显示第8、19和25行。你只发布了9行代码。这意味着你没有发布你试图编译的完整程序。我是SML初学者。据我所知,C++允许如果没有EL。PLS帮助我纠正这个SML不是C++。在SML中,条件句是表达式,而不是语句——比如C++的三元运算符(<代码>:< /COD>),也与三元运算符一样,不能排除<代码> E/S>分支。我是SML初学者。据我所知,C++允许如果没有EL。PLS帮助我纠正这个SML不是C++。在SML中,条件是表达式,而不是语句——就像C++的三元运算符(
?:
),也像三元运算符一样,不能排除
else
分支。
fun insert (Empty, i) = Node (i, Empty, Empty)
  | insert (Node (j, l, r), i) = <your code here>