【发布时间】:2011-12-15 17:11:41
【问题描述】:
我是二郎的新手。我想知道如何编写一个返回列表中前 N 个元素的函数?
我试过了:
take([],_) -> [];
take([H|T],N) when N > 0 -> take([H,hd(L)|tl(T)], N-1);
take([H|T],N) when N == 0 -> ... (I'm stuck here...)
有什么提示吗?谢谢
更新:我知道有一个名为“sublist”的函数,但我需要弄清楚如何自己编写该函数。
终于找到答案了:
-module(list).
-export([take/2]).
take(List,N) -> take(List,N,[]).
take([],_,[]) -> [];
take([],_,List) -> List;
take([H|T], N, List) when N > 0 -> take(T, N-1, lists:append(List,[H]));
take([H|T], N, List) when N == 0 -> List.
【问题讨论】: