gpt4 book ai didi

erlang - “head mismatch”编译器错误是什么意思?

转载 作者:行者123 更新时间:2023-12-03 14:30:47 26 4
gpt4 key购买 nike

我尝试编写代码以打印Z字符。

zzzzzzz
z
z
z
z
z
zzzzzzz

但是当我编译这段代码时,它会抛出
D:\erlang\graphics>erlc zeez2.erl
d:/erlang/graphics/zeez2.erl:19: head mismatch
d:/erlang/graphics/zeez2.erl:6: function zeez/3 undefined

我无法解决此错误。我没有发现什么错。
请问我有没有建议。
谢谢。
-module(zeez2).
-export([main/0]).

main() ->
L = 8,
zeez( false ,1, L). % line 6

zeez(true, M,M) ->
init:stop();

zeez(false, M, N) ->
io:format("~p~n", [zeez(z, N-M)] ),
zeez(M rem N =:= 0, M + 1, N );

zeez(true, M, N) ->
io:format("~p~n", [zeez(space, N-M)] ), % line 16
zeez(M rem N =:= 0, M + 1 , N );

zeez(space, M) ->
io:format("~p~n", ["-" ++ zeez(space, M-1)] );

zeez(space, 0) ->
"Z";

zeez(z, M) ->
io:format("~p~n", ["Z" ++ zeez(z, M-1)] );

zeez(z,0) ->
"Z".

最佳答案

问题是您混淆了两个功能:

zeez/2和zeez/3

如果通过以句号(而不是分号)结尾的方式终止zeez/3函数,则应编译:

zeez(true, M, N) ->
io:format("~p~n", [zeez(space, N-M)] ), % line 16
zeez(M rem N =:= 0, M + 1 , N ); <-- should end with .

错误消息的意思是,“嘿,我在zeez/3中,并且您抛出了2个arity子句,wtf?”

关于erlang - “head mismatch”编译器错误是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1802680/

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