I am strugging a bit to implement a nested if else expressions in SML. Can anyone highlight its syntax. Suppose there are three conditions C1, C2, C3 I need equivalent of following in C code.
if (C1) {
return true;
}
else {
if(C2) {
return true;
}
else {
if (C3) {
return true;
}
else {
return false;
}
}
}
I tried the following, but its treated as “if, else if, and else” cases
if C1 then true
else if C2 then true
else if C3 then true
else false
You’re correct. Two code fragments are equivalent.
With a bit of indentation, your SML example looks more like using nested
if/else:You could also use parentheses so that SML example looks almost the same as C example but it isn’t necessary.
Of course, the most idiomatic way in SML is to write
You could use the same trick for your C code. Remember that returning
true/falseinif/elseblocks is code smell.