只是尝试对列表值进行简单求和。
defmodule Mth do
def sum_list([]) do
0
end
def sum_list([H|T]) do
H + sum_list(T)
end
end
IO.puts Mth.sum_list([1, 2, 300])
但我收到这个错误:
**(FunctionClauseError) no function clause matching in Mth.sum_list/1
pokus.ex:3: Mth.sum_list([1, 2, 300])
pokus.ex:14: (file)
(elixir) src/elixir_lexical.erl:17: :elixir_lexical.run/2
(elixir) lib/code.ex:316: Code.require_file/2**
您需要使用小写字母作为变量和函数名称。以大写开头的标识符是为模块保留的:
defmodule Mth do
def sum_list([]) do
0
end
def sum_list([h|t]) do
h + sum_list(t)
end
end
iex> IO.puts Mth.sum_list([1, 2, 300])
303
:ok
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)