swizard (swizard) wrote,
swizard
swizard

Category:
  • Music:

LISP ебашит невероятно

Я в восторге просто :)

Когда мне его читали на четвертом курсе, я как-то не задумывался о его практическом применении, почему-то считая, что это просто одна из специфических автоматизированных систем для исчисления предикатов.

Пока что я тут за целый час кое-как родил функцию для сортировки списка, (листинг чуть ниже), завтра попробую уже что-нибудь совсем практическое написать :)

#!/usr/local/bin/clisp

(	defun mymax (l) 
	(	if (null (cdr l)) 
			(car l)
			(	if (> (car l) (setq r (mymax (cdr l)))) 
					(car l) r
			)
	)
)

(	defun mydel (l e)
	(	if (null l)
			nil 
			(	if (equal (car l) e)
				(cdr l)
				(cons (car l) (mydel (cdr l) e))
			)
	)
)

(	defun mysort (l)
	(	if (null (cdr l)) 
			(cons (car l) nil)
			(
				cons (setq mx (mymax l)) (mysort (mydel l mx))
			)
	)
)

(print (mysort '(101 2 3 1 9 2 2 1 5 -1 2 3 8 5 2 4 1 0 90 91 1101 12 13 19 12 12 15 -11 12 13 18 15 12 14 11 10 190 191)))

Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 4 comments