механизм получения элемента из списка - PullRequest
6 голосов
/ 12 января 2011

возможно ли получить элемент из списка в SML Нью-Джерси, не используя функцию head and tail, что-то вроде этого:

val a = [1,2,3];
a[1];

заранее спасибо

1 Ответ

8 голосов
/ 12 января 2011

Вы можете использовать функцию List.nth, которая принимает кортеж, содержащий список и индекс, и возвращает элемент с этим индексом. Так что в вашем примере это будет List.nth (a, 1).

Обратите внимание, однако, что доступ к n -ому элементу связанного списка - O(n), поэтому, если вы используете List.nth для итерации по списку, вы получите квадратное время выполнения.

...