【发布时间】:2015-03-16 14:36:31
【问题描述】:
我有这个代码:
-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],三个同名但不同arities的函数用逗号分隔。
【问题讨论】:
-
第一个
map_function是零元的函数,所以它应该以点结尾,而不是逗号。 erlang 中的 function 不同。顺便提一句。 code:all_loaded() 返回一个列表,而不是元组。
标签: erlang pattern-matching head mismatch