SML中嵌套"if else"的语法

Kam*_*ath 2 sml smlnj

我想在SML中实现嵌套的if else表达式.任何人都可以突出其语法.假设有三个条件C1,C2,C3我需要在C代码中等效.

if (C1) { 
    return true;
}
else {
    if(C2) {
        return true;
    }
    else {
         if (C3) {
             return true;
         }
         else {
             return false;
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下内容,但将其视为"if,else if,and else"案例

if C1 then true
else if C2 then true
else if C3 then true
else false
Run Code Online (Sandbox Code Playgroud)

pad*_*pad 8

你说的没错.两个代码片段是等价的.

通过一些缩进,您的SML示例看起来更像是使用嵌套if/else:

if C1 then true
else
    if C2 then true
    else
        if C3 then true
        else false
Run Code Online (Sandbox Code Playgroud)

您还可以使用括号,以便SML示例看起来与C示例几乎相同,但不是必需的.

当然,SML中最惯用的方式就是写

C1 orelse C2 orelse C3
Run Code Online (Sandbox Code Playgroud)

您可以对C代码使用相同的技巧.请记住,true/falseif/else块中返回是代码味道.