Лисп для мат расчетов
ты с лора?
Ты с лора?О нет, упаси Боже
Более-менее нормальные треды у sbcl. В целом распараллеливание у Лиспа кривое. На common lisp не получится.
ЗЫ: Как бы он ни нравился, на Лисп лучше забить.
мы, извращенцы, не ищем легких путей!
кстати, можно ли поконкретнее, uffi или cffi, какую библиотеку лучше подрубать, gsl, gmp или что-то еще
хотя, по некоторым данным, правильно написанные программы, запущенные на sbcl, выполняются почти так же быстро, как c++
Если первое, то Лисп не годится.
Он не заточен под мат расчеты. Нет базовых библиотек, в мат расчетах от него пользы не вижу, тем более если пользовать FFI. В него символьные вычисления и ИИ ложатся.
Зато у Лиспа глюкавые компиляторы, маленькое community, и сам язык вырос из кучи диалектов и в нем куча мусора при отсутствии линии развития и концепции. "я тебя слепила из того что было, а потом что было то и полюбила". В общем для любителей велосипедов и извращений.
cffi vs uffi : http://www.cliki.net/UFFI — New developments will probably prefer to use CFF
Мы использовали cffi.
не согласен про глюкавые компиляторы, cmucl/sbcl генерят качественный код
вообще, это похоже на холиварство, я же ведь интересуюсь, как это делать, а не "надо ли это делать"
задача - оптимизация жутко большой структуры генетическим алгоритмом вместе с квази-ньютоном
что предполагает вычисления с двойной точностью и полный простор для извращений
например, функциональный подход позволяет использовать меморизацию функций, потому что вызовы с одинаковыми параметрами дают одинаковый результат
просто прошу поделиться опытомЧто я и делаю Потому как поучаствовал в генерации кода на несколько человеко-лет, который потом отправился в помойку.
например, функциональный подход позволяет использовать меморизацию функций, потому что вызовы с одинаковыми параметрами дают одинаковый результат
Конкретно эта одна фича не аргумент для использования Лиспа. Это — оптимизация. И при желании легко реализуется на любом другом языке.
задача - оптимизация жутко большой структуры генетическим алгоритмом вместе с квази-ньютоном
что предполагает вычисления с двойной точностью
Свое отношение к Лиспу и "математика vs извращение" я написал. Ты хочешь вместо реализации алгоритма поизвращаться. Дольше разбираться с Лиспом чем писать прогу. Дело твое.
примеры всем известны
меморизация функций - фича не лиспа, а функциональных языков, но тут она делается особенно красиво при помощи лисповых замыканий
с лиспом действительно долго разбираться, но это скорее не недостаток, а
преимущество
ЗЫ. все равно спасибо за советы
2) а разве lisp - это чистый функциональный язык без побочных эффектов?
кстати, лисп - не функциональный, а мультипарадигменный язык, на нем можно писать чисто функциональные, императивные, объектно-ориентированные, логические программы, или же придумать свой стиль
кстати, лисп - не функциональный, а мультипарадигменный язык, на нем можно писать чисто функциональные, императивные, объектно-ориентированные, логические программы, или же придумать свой стильА Ока --- многофункциональная машина. В ней можно жить, заниматься сексом, хранить картошку, ей можно подпирать забор, чтобы не упал, её можно сбрасывать с самолёта на голову агрессору, или придумать собственное применение.
или придумать собственное применение.Еще можно гвозди забивать
Все должны юзать один великий и славный язык X, а все остальное в топку
присоединяюсь к предыдущим ораторам
ЗЫ. сравнение с Окой - это слишком жестоко
вот если бы движок оки мог крутить телескоп Хаббла, тогда согласен
2) а разве lisp - это чистый функциональный язык без побочных эффектов?Лисп лиспу рознь.
Дольше разбираться с Лиспом чем писать прогу. Дело твое.
Запомни, птичка: лучше день маны читать, потом за пять минут закодить!
да о чём все эти бессмысленные споры. Лисп выглядит неэстетично, скобки уродуют запись. Вот достаточные причины, чтобы от него отказаться.
Лисп выглядит неэстетично, скобки уродуют запись.Бред какой
По кр. мр., меня они до сих пор отпугивают от лиспа. Несмотря на Common Music.
а я уже не жалею, что решил начать изучение функциональных языков с хаскела. Он куда красивее лиспа. Дождаться бы ответа только на мой вопрос о monad comprehension
а я уже не жалею, что решил начать изучение функциональных языков с хаскела.Я с Рефала-5, ня. ^_^
Лисп выглядит неэстетично, скобки уродуют записьскобка - основной знак препинания в лиспе, унифицированная скобочная запись позволяет использовать очень высокоуровневые абстракции, например, макросы
кстати, если не писать все в одну строчку, а юзать pretty printing с автоотступами, то лисповый код становится очень даже понятным, имхо
а еще, например, скобки + польская нотация не позволяют ошибиться в приоритете операций
Он куда красивее лиспане согласен
это не аксиома, а чье-то личное мнение, которое может не совпадать с мнением кого-то еще
и вообще, позволю себе процитировать древний рекламный ролик, не помню про что
- Не люблю кошекпо моему, в тему
- Ты просто не умеешь их готовить
http://2ch.ru/s/ , там много профессиональных лисперов, ежедневно решающих разнообразные задачи.
Спроси в а я уже не жалею, что решил начать изучение функциональных языков с хаскела. Он куда красивее лиспа. Дождаться бы ответа только на мой вопрос о monad comprehensionКакой вопрос?
Какой вопрос?
А почему мусорный слой?
Спроси в http://2ch.ru/s/ , там много профессиональных лисперов, ежедневно решающих разнообразные задачи.там какой-то бред, куча анонимусов... хуже чем на ЛОРе
это точно оно?
По крайней мере те ли/s/перы так себя позиционируют, я не знаю, как на самом деле, но попытка не пытка же. И развлечёшься заодно =)
ок, попробую
Это точно оно, там _только_ анонимусы, многие из них ненавидят лисп, но тех ты не слушай, там есть и настоящие лисперы, влюблённые в лисп!2/10
Бред какойЛисп - вчерашний день, слишком много в нем какого-то доисторического говна. Лучше схему юзать.
ибо (equal 'lisp (and 'common-lisp 'scheme 'etc
кстати, это доисторическое говно постепенно включают в "правильные языки" лет через *дцать после появления его в лиспе
например, по слухам, в С# хотят включить лямбду
например, по слухам, в С# хотят включить лямбдучто значит хотят?
она там уже как несколько лет есть.
виноват, отстал от жизни
например, по слухам, в С# хотят включить лямбдуУже больше года как они в нем есть.
var names = new List<string>{ "lala", "bb" };
var upperCased = names.ConvertAll(name=>name.ToUpper;
но сути это не меняет
условные операторы, переменные как указатели, рекурсия, сборка мусора, интерактивность, наконец сама концепция функционального программирования
Учебник прочитал?
переменные как указателиэто что такое? и зачем?
Учебник прочитал?когда-то давно
мног разного добра прочитал
жаль на русском почти ничего нет, разве что sicp
Это что такое? и зачем?атом можно трактовать как указатель на динамическую переменную, это появилось задолго до появления С
условные операторы, переменные как указатели, рекурсия, сборка мусора, интерактивность, наконец сама концепция функционального программированияМолодец, перечислил почти все плюсы (макросы забыл). Теперь ищи минусы.
прошу прощения, а разве схема - не лисп?Ну хорошо, Комон Лисп - доисторическое говно. Так понятнее?
ибо (equal 'lisp (and 'common-lisp 'scheme 'etc
кстати, это доисторическое говно постепенно включают в "правильные языки" лет через *дцать после появления его в лиспе
например, по слухам, в С# хотят включить лямбду
Ну и чего, что включается? Стандарт Коммон Лиспа содержит больше 1000 страниц, а большинство хорошего, того что стоит добавить в другие языки, умещается на 80-ти страницах стандарта Схемы.
Ну хорошо, Комон Лисп - доисторическое говноне согласен - аргументы в студию
возраст языка не недостаток, а преимущество
стандарт cl действительно избыточен, например, наличие для каждого условного предиката типа remove-if или find-if отричающего аналого (remove-if-not хотя их все можно заменить одним оператором complement, который тоже есть в стандарте cl
схим проще, поэтому легче для изучения
но это его единственное преимущество перед cl
кстати, опуская лисп в лице коммон-лиспа, ты опускаешь схему не меньше
кстати, опуская лисп в лице коммон-лиспа, ты опускаешь схему не меньшеПод лиспом сейчас понимается именно Комон Лисп, все остальные оставшиеся диалекты имеют свои названия.
http://community.schemewiki.org/?scheme-vs-common-lisp
сравнение диалектов
и вообще, спор о том, что лучше: схим или cl - полный бред, это очень близкие вещи
виноват, отстал от жизнионо даже в плюсах есть (смотри библиотеки буста)
Такой вопрос
занимался ли кто-нибудь математическими расчетами на лиспе?
zsh> eix sapacДля примера, можно еще нагуглить "Numerical recipes", переведенные на Lisp.
[D] dev-lisp/cl-sapaclisp
Available versions: !1.0a
Installed: 1.0a[01:01:45 27.11.2008]
Homepage: http://common-lisp.net/project/sapaclisp/
Description: Common-Lisp code for the book "Spectral Analysis for Physical Applications: Multitaper and Conventional Univariate Techniques"
Еще есть/была surf-hippo — среда для моделирования нейронов и синапсов полностью на CL.
Можно также посмотреть на Nlisp (кажется) — ffi интерфейс к разным математическим библиотекам. Работает, вроде, только под cmucl'ом.
Писать с нуля или дергать библиотеки через cffi — дело вкуса, мне кажется.
очень помогло
В переводе, конечно, нет того, что мне надо, но все равно полезно разобрать стиль
Nlisp смотрел, не понравилось
нету стабильной версии, и используют gsl, которая, как оказалось, не катит для больших размерностей
[Не забудь потом кодом поделиться интересно же]
Как завещал Грэм, можно писать на CL, а переписть на C узкие места всегда успеется
Ну дак пиши тогда сам сразу на CLв процессе
Не забудь потом кодом поделиться, интересно жеок, но после НГ
сессия подкралась незаметно
оно даже в плюсах есть (смотри библиотеки буста)
В С++0х тоже будет
Да.
> интересует, что эффективнее: писать все функции с нуля
> или использовать библиотеки фортран/C++ через ffi
У каждого своя эффективность. Конкретнее.
> нормальных родных библиотек в состоянии stable не нашел.
Зависит от потребностей.
> Как лучше организовать распараллеливание?
Зависит от потребностей.
> Знаком ли кто-нибудь с реализацией scl - якобы заточенной для вычислений
Могу узнать, если очень надо.
> ps. другие языки просьба не предлагать, потому что я жуткий фанат этого языка
Тогда тебе нечего делать на этом форуме.
---
"Тот, кто знает, знает..."
Оставить комментарий
ramsit
Такой вопросзанимался ли кто-нибудь математическими расчетами на лиспе?
интересует, что эффективнее: писать все функции с нуля или использовать библиотеки фортран/C++ через ffi (foreign function interface нормальных родных библиотек в состоянии stable не нашел.
Как лучше организовать распараллеливание?
Знаком ли кто-нибудь с реализацией scl - якобы заточенной для вычислений
ps. другие языки просьба не предлагать, потому что я жуткий фанат этого языка