Erlang得到第n个元素

rjee0c15  于 2022-12-08  发布在  Erlang
关注(0)|答案(2)|浏览(202)

我想得到第n个元素。

-module(lab02).
-export([functionGetnth/2]).

functionGetnth([], _N) ->
    {error, no_such_element};
functionGetnth([H|_T], 1) -> H;
functionGetnth([H|T], N) when N > 1 ->
    functionGetnth([H|T], N-1).

当Head不是第n个位置时,如何删除Head?

qv7cva1a

qv7cva1a1#

在标准库中已经有这样的函数,参见lists:nth/2。
如果你坚持自己做,你只需要在第三个子句的尾部(T)递归,这样就丢弃了头部(H),即:

functionGetNth(T, N-1).
enxuqcxy

enxuqcxy2#

-module(lab02).
-export([functionGetNth/2]).

functionGetNth([], _N) ->
    {error, no_such_element};
functionGetNth([H|_], 1) -> H;
functionGetNth([_|T], N) when N > 1 ->
    functionGetNth(T, N-1).

相关问题