Не получается создать список на Racket (scheme)
У меня есть задача: дан список (X1...Xn) с различными элементами и число k. Найти k-тый элемент по величине. Довольно долго гуглю информацию, но наглядных и понятных решений вообще по поиску элементов в списке на языках данного типа найти не получается. Есть догадки, что можно как-то с помощью рекурсии, используя cdr и car сделать, но пока ничего работающего не вышло. Помогите, пожалуйста.
Ответы (1 шт):
просто вывести элемент из списка по его индексу можно с помощью функции (list-ref lst pos). пример (элементы нумеруются начиная с нуля):
> (list-ref '(5 7 3 6) 0)
5
а отсортировать список можно с помощью функции (sort lst less-than?):
> (sort '(5 7 3 6) <)
(3 5 6 7)
и обе функции вместе:
> (list-ref (sort '(5 7 3 6) <) 0)
3
p.s. примеры проверялись в guile, но затрагивают они настолько базовые понятия, что должны работать идентично и в любой другой реализации языка scheme.