Во-первых, это не имеет никакого смысла. if-then-else
должен состоять из всех трех частей: вы не можете опустить else
, что явно делает ваш трейлинг if-then
.
Во-вторых, множественные операторы (разделенные ;
) полезны только при наличии побочных эффектов, которых нет. Вы можете изменить свой код на
fun function (a, b) =
( if size a < 2 then a ^ " " else
if size a < 3 then a ^ " " else
a
; if size b < 2 then b ^ " " else
if size b < 3 then b ^ " " else
b
)
но результат первого утверждения будет отброшен и совершенно бесполезен.
Возможно, вы хотите что-то похожее на
fun padLeft (n, a) =
if size a < n
then a ^ CharVector.tabulate(n - size a, fn _ => #" ")
else a
fun function1 (a, b) = (padLeft (3, a), padLeft (3, b))
fun function2 (a, b) = (print (padLeft (3, a)); print (padLeft (3, b)))
где function1
возвращает пару с использованием обоих входов, а function2
возвращает unit
, но имеет видимый побочный эффект при использовании обоих входов.