我是Erlang的新手,我尝试了一些Erlang构造。 我的程序应该是这样的:
if x == 42:
print "Hi"
else:
print "Hello"
这是我在Erlang中的代码
-module(tested).
-export([main/0]).
main() ->
{ok, X} = io:fread("","~d"),
case X == 42 of
true -> io:fwrite("Hi\n");
false -> io:fwrite("Hello\n")
end.
提前感谢您的帮助。
答案 0 :(得分:4)
使用{ok, [X]} = io:fread("","~d")
(X
周围的括号)。
fread
返回一个列表作为元组的第二个元素(如果您正在读取多个令牌,这是有意义的),因此您需要先从列表中获取该元素,然后才能对其进行比较到42
。
请注意,不是在==的结果上进行模式匹配,而是可以简单地在X本身上进行模式匹配,即:
case X of
42 -> io:fwrite("Hi\n");
_ -> io:fwrite("Hello\n")
end.