gpt4 book ai didi

右侧值不匹配的 Erlang 异常错误

转载 作者:行者123 更新时间:2023-12-04 18:19:37 24 4
gpt4 key购买 nike

我有这段代码应该在列表中打印数字 1 到 N-1,但是 I在这里不会附加到列表中。

enum(N,[],N) -> [];
enum(N,L,I) ->
io:format("current number: ~w~n", [I]),
L = L ++ I,
enum(N,[],I+1).

enumFunc(N) -> enum(N,[],1).

当我运行 sample:enumFunc(100). 时,它返回 exception error: no match of right hand side value [1]
请帮我解决这个问题。谢谢。

最佳答案

Erlang 是一种单一的赋值语言。这意味着您不能为 L 分配新值。如果一个值已经分配给 L .当您尝试通过 L = L ++ I“分配”一个新值时您实际上是在执行匹配操作。您看到 no match of right hand side value [1] 的原因错误是因为 L不等于 L ++ I因为 L已分配值 [1]和不匹配 [1,2]

enum(N,L,N) -> L;
enum(N,L,I) ->
io:format("current number: ~w~n", [I]),
L0 = L ++ [I],
enum(N,L0,I+1).

enumFunc(N) -> enum(N,[],1).

关于右侧值不匹配的 Erlang 异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52468127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com