Sml 如何在let语句中使用if语句?
我希望这能起作用:Sml 如何在let语句中使用if语句?,sml,Sml,我希望这能起作用: fun function (i) = let if i = 1 then val h = valOf(Int.fromString(valOf(TextIO.inputLine TextIO.stdIn))) else val h = someFunction(); in code... end 但似乎你不能声明这样的值。。。如果ML中的语句是一个表达式,我应该如何使
fun function (i) =
let
if i = 1 then
val h = valOf(Int.fromString(valOf(TextIO.inputLine TextIO.stdIn)))
else
val h = someFunction();
in
code...
end
但似乎你不能声明这样的值。。。如果ML中的语句是一个表达式,我应该如何使它工作?一个
。这意味着它必须有一个值。记住,SML中的值声明如下所示:
val <name> = <expression>
还有一件事。请记住,valOf
可能出错。在输入时使用它几乎会让程序崩溃,因为用户可以输入任何内容。如果ML中的语句是表达式,则语句。这意味着它必须有一个值。记住,SML中的值声明如下所示:
val <name> = <expression>
还有一件事。请记住,valOf
可能出错。在输入时使用它几乎会导致程序崩溃,因为用户可以输入任何内容。这样如何:
fun function(i)=
let
fun nextInput() =
case (TextIO.inputLine TextIO.stdIn) of
NONE => 0
| SOME s => case Int.fromString(s) of
NONE => 0
| SOME n => n
val h = if i = 1 then nextInput() else someFunction()
in
code...
end
通过这种方式,您可以涵盖用户可能不输入数字,但输入任何其他内容,或根本不输入任何内容的情况。这一点如何:
fun function(i)=
let
fun nextInput() =
case (TextIO.inputLine TextIO.stdIn) of
NONE => 0
| SOME s => case Int.fromString(s) of
NONE => 0
| SOME n => n
val h = if i = 1 then nextInput() else someFunction()
in
code...
end
通过这种方式,您可以涵盖用户可能不输入数字,但输入任何其他内容,或根本不输入任何内容的情况。您会使用什么来代替valOf?我能以某种方式处理提出的exeption选项吗?就像在一个假设中。。else语句?我可能会使用模式匹配。你会用什么来代替valOf?我能以某种方式处理提出的exeption选项吗?就像在一个假设中。。else语句?我可能会使用模式匹配。