Showing posts with label lisp. Show all posts
Showing posts with label lisp. Show all posts

Wednesday, March 16, 2011

D!

Пока разбирался с бозоном Хиггса, насмотрелся на исходники Clisp-а и выяснил, что существенная часть его запчастей написана на D!  Если честно, я изумлен.

Бозон Хиггса снова ускользнул

Едва ли не единственный тип ошибок, которые я время от времени допускаю при программировании, -- это использование неициализированных данных.

Бозон Хиггса, который залетел в предыдущий пост -- тоже использование неициализированных данных. Sbcl инициализирует массив при его создании (make-array ...) нулями, а Clisp -- не очень. Не очень -- потому что на небольших размерах массив после создания заполнен нулями, а на больших размерах нули не везде. Если верить стандарту, то (make-array ...) ничего занулять и не должен, если не задан :initial-element. Хорошо это или плохо? Видимо, да.

Tuesday, March 15, 2011

Бозон Хиггса в отдельно взятой программе

На задаче 136 проекта Эйлер я поймал бозон Хиггса: каждый запуск программы для ее решения дает новый ответ, достаточно близкий к правильному результату. Только при использовании Clisp, в то время как Sbcl и аналогичный варинат на Scheme (Guile) работают правильно. И только при достаточно больших значених аргументов, тестовые прогоны для небольших значений всегда стабильны.

P.S. А на Lispworks (personal edition) вообще не смог дождаться окончания работы программы.

Wednesday, March 2, 2011

В моих руках Scheme бьет Common Lisp :-)

Начинаю матереть в Scheme: проблему 128 Project Euler на Scheme (Guile) решаю за 40 секунд, а на Common Lisp (SBCL) за 60.

Tuesday, February 22, 2011

Интересно смотреть на числа

Интересно смотреть на числа.

За два года упражнений Project Euler я написал ровно 19000 строк кода на Scheme и Common Lisp:

[...]$ cat *.scm *.lisp | wc -l
19000

В основном на Scheme, на Common Lisp пару тысяч всего. Если убрать комментари и пустые строки, то будет примерно 8500 строк.

Scheme в использовании: Guile (в основном), Petite Chez Scheme, Chicken.
Common Lisp: SBCL, CLisp.

Доволен.