Не получается создать список на Racket (scheme)

У меня есть задача: дан список (X1...Xn) с различными элементами и число k. Найти k-тый элемент по величине. Довольно долго гуглю информацию, но наглядных и понятных решений вообще по поиску элементов в списке на языках данного типа найти не получается. Есть догадки, что можно как-то с помощью рекурсии, используя cdr и car сделать, но пока ничего работающего не вышло. Помогите, пожалуйста.


Ответы (1 шт):

Автор решения: aleksandr barakin

просто вывести элемент из списка по его индексу можно с помощью функции (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.

→ Ссылка