不老药的Matcherror

ama*_*319 2 elixir

我是Elixir的新手,所以我对这三个陈述感到困惑

a = [ [ 1, 2, 3 ] ]

[a] = [ [ 1, 2, 3 ] ]

[[a]] = [ [ 1, 2, 3 ] ]
Run Code Online (Sandbox Code Playgroud)

第一个和第二个语句按预期返回结果,但第三个语句引发错误

**(MatchError)右侧值不匹配:[[1,2,3]]

我想知道为什么第三句话会引起错误

Dog*_*ert 10

a匹配任何值.[a]匹配一个只包含一个元素的列表,该元素可以是任何值.[[a]]匹配一个元素的列表,该元素包含另一个恰好一个元素的列表,该元素可以是任何值.

表达式[[1, 2, 3]]匹配前两个模式但与第三个模式不匹配,因为它是包含三个元素的一个列表的列表.