У меня есть этот код:Head Несовпадение в простой схеме аргумент сопоставления
-module(info).
-export([map_functions/0]).
-author("me").
map_functions() ->
{Mod,_} = code:all_loaded(),
map_functions(Mod,#{});
map_functions([H|Tail],A) ->
B = H:mod_info(exports),
map_functions(Tail,A#{H => B});
map_functions([],A) -> A.
Однако всякий раз, когда я скомпилировать его я получаю несоответствие головки по линии 10, которая является
map_funtions([H|Tail],A) ->
Я уверен, что это это очень простая ошибка, но я просто не могу понять, почему это не работает. Это правильный синтаксис соответствия шаблону [H|Tail]
, а три функции с тем же именем, но разные атрибуты разделяются запятыми.
Первая «карта_функция» - это функция нулевой арности, поэтому она должна заканчиваться точкой, а не запятой. В erlang отличается [функция] (http://erlang.org/doc/reference_manual/functions.html). Btw. [code: all_loaded()] (http://erlang.org/doc/man/code.html#all_loaded-0) возвращает список, а не кортеж. –
Возможный дубликат [Что означает ошибка компилятора «несогласование»?] (Http://stackoverflow.com/questions/1802680/what-does-the-head-mismatch-compiler-error-mean) –