如何实现返回列表第N个元素的Erlang函数?

时间:2017-01-26 22:00:34

标签: recursion erlang

我需要一些帮助:

  

写一个函数lists1:nth(N,L)返回列表L的第N个元素。

     

所以list调用的结果如下所示:

     

1> lists1:nth(3,[2,3,4,5])。

     

4

1 个答案:

答案 0 :(得分:2)

你可以查看lists模块的代码,原理很简单:

  • 如果你必须选择第一个元素,就这样做,

      

    nth(1,[H|_]) -> H;

  • 否则如果N是大于1的整数,则删除列表的第一个元素并选择(N-1)。

      

    nth(N,[_|T]) when is_integer(N), N > 1 -> nth(N-1,T).

在任何其他情况下,让我们失败。