我正在制作SML lambda演算翻译功能,我遇到了几个错误,我不知道如何修复它。
cfunf id (CAPP(e1,e2))=
if not(cfree id (CAPP(e1,e2)))
then CAPP(CK,CAPP(e1,e2))
else
if ((CID id) = e2) andalso not(cfree id e1)
then e1
else CAPP(CAPP(CS, (cfunf id e1)),(cfunf id e2));
我得到的错误是RPAREN THEN和ELSE IDA。我很确定RPAREN是用于括号中的不平衡,但我没有看到。以下函数需要此代码。我确定它有一些简单的语法错误,但我不知道如何进行,所以任何帮助都将受到赞赏。
答案 0 :(得分:1)
第二个if
的行有3个开头但有4个右括号。 (事实上,那里实际上只需要一对parens。)
答案 1 :(得分:0)
您添加了额外的括号。从
中删除最后一个)
if ((CID id) = e2) andalso not(cfree id e1))
所以它变成
if ((CID id) = e2) andalso not(cfree id e1)