Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > LISP: сортировка выбором


Автор: Cr@$h 21.5.2006, 17:42
Помогите пожалуйста с неочень сложной лабой по LISP'у. Сейчас зачетка, а со временем совсем завал.

Требуется реализовать сортировку выбором. (Находим элемент массива, имеющий наименьшее значение, делаем его первым. Затем точно также поступаем с остальнвми элементами массива).

Хотелось бы получить и указания к компилятору, который можно принести на флешке и запустить, показать прогу. Язык -- LISP, не сильно важно какая его модификация, лишь бы LISP, а не Haskel, скажем. Лучше консоль, я думаю.

Буду очень признателен за помощь. 

Автор: nostromo 22.5.2006, 12:21
http://en.wikipedia.org/wiki/Selection_sort 

Автор: Cr@$h 22.5.2006, 22:31
Гуд. Я знаю, что такое сортировка выбором -- не знаю ЛИСПа. Если не сложно помогите, плз...

Добавлено @ 22:36 
Мне бы прогу готовую, в консоле, с небольшими комментариями, да компилятор, который можно на флешке принести. 

Автор: Void 22.5.2006, 22:38
Cr@$h, в статье есть примеры на куче языков, включая LISP. Если кто-то успеет отредактировать ее, вот копипаст smile
Код
 (defun select (l)
        (cond ((null (rest l)) (first l))
                  (t (let ((s (select (rest l))))
                         (if (< (first l) s) (first l) s)))))
 
 (defun selectsort (l)
        (cond ((null l) ())
                  (t (let ((s (select l)))
                         (cons s (selectsort (remove s l :count 1)))))))
 

Автор: Cr@$h 23.5.2006, 22:27
Ты не проверял, эта связка работает?
Млин так хотел изучить ФЛП, а времени хватило только на Пролог. smile Попробую надыбать XLISP. 

Автор: Void 23.5.2006, 22:29
Cr@$h, работает. Не самый эффективный код, но работает. 

Автор: Cr@$h 27.5.2006, 00:05
Спасибо за помощь, nostromo и старый приятель на форуме Void,  за мной LUP. Я разобрался в основах LISP'а, лаба успешно защищена. Конечно, ЛИСП делался, скорее, удобным для транслятора, а не для программиста. Тем не менее, я понял всю мощь и элегантность функционального программирования и при необходимости в будущем всегла смогу продолжить свои изыскания, например, на Haskel. Главное здраво и объективно на всё смотреть, за что спасибо Void не только в этом посте. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)