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) вообще не смог дождаться окончания работы программы.

Sunday, March 6, 2011

Cthun

В одной из тем comp.lang.lisp на Google Groups завелся настоящий бот по имени Cthun, который постит там мелкие оскорбления. Постит не слишком к месту, но для неискушенного взгляда вполне себе складно: когда кто-то упоминает его имя, он пишет коммент типа "а какое это отношение имеет к лиспу?". Народ не спеша изучает его анатомию и даже пишет весьма недурные эссе на тему "это я сделал бота Cthun".

Интересно, сюда Cthun тоже придет прокомментировать, отозвавшись на свое имя?

Wednesday, March 2, 2011

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

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

Wednesday, February 23, 2011

Еще про числа и немного про буквы

Еще про числа и немного про буквы.

Если взять функцию
tcp_output()
из ядра FreeBSD и распечатать на бумаге формата A4 8-м размером шрифта, то получится 16 страниц довольно убористого текста.  Это про цифры.

Про буквы. Если поискать гуглем какой-нибудь кусок из комментариев в вышеупомянутой фришной функции, то первый и единственный результат поиска, содержащий точное вхождение фразы отправляет (ха!) на сайт research.microsoft.com, где эта функция мирно хранится. Research! И первое, что делают эти исследователи с бездыханным телом функции, -- пишут емкую фазу Microsoft Invisible Computing и ставят свой копирайт. Невидимые исследователи копирайта!

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.

Доволен.