Я хотел бы получить 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).
Как я могу удалить голову, если голова не является n-й позицией?
🤔 А знаете ли вы, что...
Язык Erlang спроектирован для обработки миллионов одновременных процессов.
Такая функция уже есть в стандартной библиотеке, см. lists:nth/2.
Если вы настаиваете на создании своего собственного, вам нужно выполнить рекурсию только на хвосте (T
) в вашем третьем предложении, таким образом отбросив голову (H
), то есть:
functionGetNth(T, N-1).