LINUX.ORG.RU

Lisp

 , , ,


1

7

Решил прокачать скиллы на CL. Несколько вопросов. 1)Ни одной вакансии.Почему? 2)Преимущества и недостатки для web? 3)Инфраструктура? 4)Есть идея проекта игровой тематики. Хочу использовать Lisp. Разумно? Если да то почему.Если нет то какие минусы и с какими сложностями и трудностями прийдется столкнуться?

Перемещено post-factum из web-development

Перемещено mono из talks

Ответ на: комментарий от no-such-file

что такое есть в CL, для поддержки ФП, чего нет в питоне или перле?

1. оптимизация хвостовых вызовов (не в стандарте, но почти во всех реализациях)

(defun iter (n) (when (> n 0) (...) (iter (- n 1))))

будет выполняться также эффективно, как цикл

2. Нормальные лямбды.

3. Нормальные замыкания.

monk ★★★★★
()
Ответ на: комментарий от monk

1. оптимизация хвостовых вызовов (не в стандарте, но почти во всех реализациях)

в перле есть

2. Нормальные лямбды.

тоже в перле есть

3. Нормальные замыкания.

и это в перле есть.

Перл - ФП язык?

no-such-file ★★★★★
()
Ответ на: комментарий от monk

Да.

Вот именно. А теперь вопрос: если ТС хотел ФП в вебе, зачем брать CL в котором полтора живых фреймворка, если с тем же успехом можно качать скилл ФП на перле, руби или (о боже) похапе?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

если ТС хотел ФП в вебе

Вообще-то в топике «Решил прокачать скиллы на CL.... Хочу использовать Lisp...». А ФП уже вторично как противопоставление основного подхода лиспа против мейнстримового ООП.

Всё-таки в CL основной инструмент цикла в стандартной библиотеке mapcar, а в Perl for(...). Также как регекспы удобней учить на Perl, несмотря на то, что соответствующие библиотеки уже даже в Си есть. А если именно «ФП в вебе», то брать надо Haskell (плюс какой-нибудь Happstack).

monk ★★★★★
()
Ответ на: комментарий от monk

Вообще-то в топике «Решил прокачать скиллы на CL.... Хочу использовать Lisp...». А ФП уже вторично

Вы плохо читали тему. Я специально спросил у ТСа - «почему лисп». На что был ответ: «Считаю что ФП гораздо разумнее использовать в своих проектах если заказчик и один из исполнителей ты сам. Стоит выбор: Haskell или Lisp. С Лиспом не знаком,но мой преподаватель советует Lisp так как вроде как лучше распараллеливать логику. »

Всё-таки в CL основной инструмент цикла в стандартной библиотеке mapcar, а в Perl for(...).

Во-первых в CL есть do и loop как основные инструменты цикла. mapcar делает не for, а foreach по списку, что, согласитесь, является частным случаем цикла.

Во-вторых в перле есть map, grep и т.п.

А если именно «ФП в вебе», то брать надо Haskell (плюс какой-нибудь Happstack).

Ну, если цель теоретическая - пощупать чистое ФП в вебе, то можно согласиться.

no-such-file ★★★★★
()
Ответ на: комментарий от monk

то такое есть в CL, для поддержки ФП, чего нет в питоне
или перле?

1. оптимизация хвостовых вызовов

Ага, только разработчик SBCL говорит, что лучше на неё не расчитывать, потому что это просто оптимизация и применяется не всегда.

2. Нормальные лямбды.

Анонимные лямбды просто вредны.

3. Нормальные замыкания.

В Python совершенно полноценные замыкания. При этом, когда я пишу на Python, то использую замыкания чаще, чем в CL, скорей всего из-за синтансиса, ибо в Python это нормально выглядит.

archimag ★★★
()
Ответ на: комментарий от archimag

Анонимные лямбды просто вредны.

Ну это проблема общелиспа, в нормальных ЯП с этим все в порядке, т.к. у лямбды есть source location и имя не нужно.

anonymous
()
Ответ на: комментарий от archimag

В Python совершенно полноценные замыкания. При этом, когда я пишу на Python, то использую замыкания чаще, чем в CL, скорей всего из-за синтансиса, ибо в Python это нормально выглядит.

Я не понимаю, зачем вообще ты пишешь на CL? Макросы тебе не нравятся, анонимные функции не нравятся, DSL не нравится, синтаксис лиспа тоже не нравится...

monk ★★★★★
()
Ответ на: комментарий от monk

Я не понимаю, зачем вообще ты пишешь на CL? Макросы тебе не нравятся, анонимные функции не нравятся, DSL не нравится, синтаксис лиспа тоже не нравится...

наверное чтобы перестать быть быдлокодером и примкнуть к илите.

Deleted
()
Ответ на: комментарий от anonymous

Лямбды - лучший способ запутать код до полной нечитаемости.

Твой год с говнолямбдами кроме тебя никто не сможет прочитать.

И после этого мне будут рассказывать, что «разговаривать матами» - это нехорошо? Как хотите - буду тогда просто молчать.

yyk ★★★★★
()
Ответ на: комментарий от yyk

Какая связь между блямбдой и матами?!? Кроме разве что того, что лямбда в приличном обществе тоже табу.

anonymous
()
Ответ на: комментарий от monk

зачем вообще ты пишешь на CL?

Прежде всего интерактивная разработка, потом: CLOS, динамические переменные (в Python даже лексических нет), нет GIL, производительность (правда для Python я сейчас для некоторых задач использую PyPy и разница в производительности уже не так велика), SLIME, ну и наверное ещё разных мелочей набёртся.

archimag ★★★
()
Ответ на: комментарий от anonymous

что это проблемы общества, так же как когда человек не видит аналогии, это не проблемы аналогии. только не проси следующим постом прямо сказать, что ты дуб, я не люблю прямо оскорблять

pseudo-cat ★★★
()
Ответ на: комментарий от pseudo-cat

Ну конечно же, все общество идет не в ногу, одни лисперы ходят правильным строем. Сектанты такие сектанты.

anonymous
()
Ответ на: комментарий от anonymous

все общество не равняй. Если в твоем обществе тебе сказали, что нельзя пользоваться огнестрельным оружием только потому, что им можно прострелить себе ноги, не нужно думать, что такое оружие не нужно всем, в т.ч. и людям умеющим им пользоваться. Да, извини, о5 аналогия.

pseudo-cat ★★★
()
Ответ на: комментарий от anonymous

там пример правильного использования лямбд есть и сравнение с тем что без лямбд.

pseudo-cat ★★★
()
Ответ на: комментарий от anonymous

с Java 5 неправы

а нововведения почти всегда воспринимаются в штыки, это уже особенность человеческого мозга.

pseudo-cat ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.