【发布时间】:2022-02-03 10:24:02
【问题描述】:
如果这是基本的,请原谅我,但我是 Elixir 的新手,并试图理解该语言。 说我有这个代码
defmodule Test do
def mult([]), do: 1
def mult([head | tail]) do
IO.puts "head is: #{head}"
IO.inspect tail
head*mult(tail)
end
end
当我运行时:Test.mult([1,5,10])
我得到以下输出
head is: 1
[5, 10]
head is: 5
'\n'
head is: 10
[]
50
但我很难理解发生了什么,因为如果我单独尝试这样做:
[h | t] = [1,5,10]
h * t
显然我得到了一个错误,有人可以解释我缺少什么吗?
【问题讨论】:
-
尝试将
IO.inspect tail替换为IO.inspect tail, charlists: false并检查是否更好?