Пока разбирался с бозоном Хиггса, насмотрелся на исходники Clisp-а и выяснил, что существенная часть его запчастей написана на D! Если честно, я изумлен.
Showing posts with label lisp. Show all posts
Showing posts with label lisp. Show all posts
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) вообще не смог дождаться окончания работы программы.
Wednesday, March 2, 2011
В моих руках Scheme бьет Common Lisp :-)
Начинаю матереть в Scheme: проблему 128 Project Euler на Scheme (Guile) решаю за 40 секунд, а на Common Lisp (SBCL) за 60.
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)