Пока разбирался с бозоном Хиггса, насмотрелся на исходники Clisp-а и выяснил, что существенная часть его запчастей написана на D! Если честно, я изумлен.
Wednesday, March 16, 2011
Бозон Хиггса снова ускользнул
Едва ли не единственный тип ошибок, которые я время от времени допускаю при программировании, -- это использование неициализированных данных.
Бозон Хиггса, который залетел в предыдущий пост -- тоже использование неициализированных данных. Sbcl инициализирует массив при его создании (make-array ...) нулями, а Clisp -- не очень. Не очень -- потому что на небольших размерах массив после создания заполнен нулями, а на больших размерах нули не везде. Если верить стандарту, то (make-array ...) ничего занулять и не должен, если не задан :initial-element. Хорошо это или плохо? Видимо, да.
Бозон Хиггса, который залетел в предыдущий пост -- тоже использование неициализированных данных. Sbcl инициализирует массив при его создании (make-array ...) нулями, а Clisp -- не очень. Не очень -- потому что на небольших размерах массив после создания заполнен нулями, а на больших размерах нули не везде. Если верить стандарту, то (make-array ...) ничего занулять и не должен, если не задан :initial-element. Хорошо это или плохо? Видимо, да.
Tuesday, March 15, 2011
Бозон Хиггса в отдельно взятой программе
На задаче 136 проекта Эйлер я поймал бозон Хиггса: каждый запуск программы для ее решения дает новый ответ, достаточно близкий к правильному результату. Только при использовании Clisp, в то время как Sbcl и аналогичный варинат на Scheme (Guile) работают правильно. И только при достаточно больших значених аргументов, тестовые прогоны для небольших значений всегда стабильны.
P.S. А на Lispworks (personal edition) вообще не смог дождаться окончания работы программы.
P.S. А на Lispworks (personal edition) вообще не смог дождаться окончания работы программы.
Sunday, March 6, 2011
Cthun
В одной из тем comp.lang.lisp на Google Groups завелся настоящий бот по имени Cthun, который постит там мелкие оскорбления. Постит не слишком к месту, но для неискушенного взгляда вполне себе складно: когда кто-то упоминает его имя, он пишет коммент типа "а какое это отношение имеет к лиспу?". Народ не спеша изучает его анатомию и даже пишет весьма недурные эссе на тему "это я сделал бота 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
Еще про числа и немного про буквы
Еще про числа и немного про буквы.
Если взять функцию
Про буквы. Если поискать гуглем какой-нибудь кусок из комментариев в вышеупомянутой фришной функции, то первый и единственный результат поиска, содержащий точное вхождение фразы отправляет (ха!) на сайт research.microsoft.com, где эта функция мирно хранится. Research! И первое, что делают эти исследователи сбездыханным телом функции, -- пишут емкую фазу Microsoft Invisible Computing и ставят свой копирайт. Невидимые исследователи копирайта!
Если взять функцию
tcp_output()из ядра FreeBSD и распечатать на бумаге формата A4 8-м размером шрифта, то получится 16 страниц довольно убористого текста. Это про цифры.
Про буквы. Если поискать гуглем какой-нибудь кусок из комментариев в вышеупомянутой фришной функции, то первый и единственный результат поиска, содержащий точное вхождение фразы отправляет (ха!) на сайт research.microsoft.com, где эта функция мирно хранится. Research! И первое, что делают эти исследователи с
Tuesday, February 22, 2011
Интересно смотреть на числа
Интересно смотреть на числа.
[...]$ cat *.scm *.lisp | wc -l 19000
В основном на Scheme, на Common Lisp пару тысяч всего. Если убрать комментари и пустые строки, то будет примерно 8500 строк.
Scheme в использовании: Guile (в основном), Petite Chez Scheme, Chicken.
Common Lisp: SBCL, CLisp.
Доволен.
Subscribe to:
Posts (Atom)