What does the "head mismatch" compiler error mean?
compiler-errors, erlang
Solution
the problem is that you have mixed up 2 functions:
zeez/2 and zeez/3
If you terminate the zeez/3 function by ending it with a full stop not a semi-colon it should compile:
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 .
The error message means, 'hey I'm in zeez/3 and you have thrown in a 2-arity clause, wtf?'
Problem
I tries to write code to print Z character. ``` zzzzzzz z z z z z zzzzzzz ``` But when I compile this code, it throws ``` D:\erlang\graphics>erlc zeez2.erl d:/erlang/graphics/zeez2.erl:19: head mismatch d:/erlang/graphics/zeez2.erl:6: function zeez/3 undefined ``` I can't fixed this error. I didn't find what wrong in my could. Does one please suggest me. Thank you. ``` -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". ```