【发布时间】:2018-09-04 23:56:31
【问题描述】:
我是 Elixir 的新手,我正在尝试创建一个简单的匿名函数来连接两个原子列表。
没错,写的代码是:
concat = fn(x,y) -> x ++ y end
此代码也适用于其他数据类型。
我的问题是,为什么下面的代码不起作用?
list_concat = fn([:a,:b],[:c,:d]) -> [:a,:b,:c,:d] end
我在函数中写入时没有抛出Iex,但是如果我尝试运行list_concat,则会抛出以下内容:
> list_concat.([:true,:false],[:false,:true])
** (FunctionClauseError) no function clause matching in :erl_eval."-inside
an-interpreted-fun-"/2
The following arguments were given to :erl_eval."-inside-an-interpreted-fun-
"/2:
# 1
[true, false]
# 2
[false, true]
谁能帮我弄清楚堆栈跟踪的含义,以及为什么list_concat 不是正确的解决方案?它与模式匹配有关吗?谢谢!
【问题讨论】:
标签: elixir