我是Elixir中的新成員,但我的谷歌搜索和閱讀沒有找到我解決當前問題的方法。我只在書籍和教程中看過一個例子,將單個列表參數傳遞給一個函數,例如:[ head | tail ]
。Elixir - 傳遞多個列表作爲函數參數
defmodule Math do
def double_each([head|tail]) do
[head * 2| double_each(tail)]
end
def double_each([]) do
[]
end
end
我需要在兩個列表中通過,然後對他們執行一些操作,比如:
defmodule Pagination do
def getPaginatedList([], _, _, _) do
[]
end
def getPaginatedList([list], [paginated], f, l) when f == 1 do
Enum.take(list, l)
end
def getPaginatedList(_, [paginated], f, l) when l <= f do
paginated
end
def getPaginatedList([list], [paginated] \\ [], f, l) do
getPaginatedList(tl(list), paginated ++ hd(list), f, l - 1)
end
end
不過,我收到一個錯誤有關將在何時不匹配功能的語句列表中的a和列表中的b,如下面的錯誤:
iex(23)> Pagination.getPaginatedList(a, b, 1, 2)
** (FunctionClauseError) no function clause matching
in Pagination.getPaginatedList/4
pagination.ex:2: Pagination.getPaginatedList([1, 2, 3, 4, 5], [], 1, 2)
任何想法,我可能做錯了嗎? (道歉,如果這是一個簡單的問題要回答,我幾個小時的搜索和玩這個後,我還沒有找到任何答案。)