Я программирую уже много лет, прорабатывая различные итерации Blub (BASIC, Assembler, C, C ++, Visual Basic, Java, Ruby без какого-либо конкретного порядка «Blub-ness»), и я хотел бы научиться Лисп. Тем не менее, у меня много интертаций с ограниченным временем (семья, работа на полную ставку и т. Д.) И комфортное счастье с моим нынешним Blub (Java).
Итак, мой вопрос заключается в следующем: учитывая, что я действительно хотел бы изучать Lisp, каковы были бы первые шаги для получения хорошего результата, демонстрирующего превосходство Lisp в веб-разработке ? Может быть, я упускаю суть, но именно так я и увидел бы применение моих знаний о Лиспе.
Я думаю, что «используйте диалект A, используйте IDE B, следуйте инструкциям на странице C, поставьте под сомнение ваше здравомыслие после монад с помощью консультанта D». Я просто хотел бы знать, что люди здесь считают оптимальным набором значений для A, B, C и, возможно, D. Также некоторые дискуссии об относительных достоинствах изучения такого мощного языка по сравнению с, скажем, становлением Rails эксперт.
Просто, чтобы добавить больше подробностей, я буду разрабатывать на MacOS (или Linux VM) - подходы на основе Windows не понадобятся, спасибо.
Заметки для тех, кто просто просматривает
Я собираюсь оставить этот вопрос открытым некоторое время, чтобы я мог оставить отзыв о предложениях после того, как смогу их изучить. Если вы просматриваете и чувствуете, что хотите что-то добавить, сделайте это. Буду очень рад вашим отзывам.
Интересные ссылки
Предполагая, что вы переходите на Lisp из Java-фона, этот набор ссылок поможет вам быстро начать работу.
- Использование плагина Intellij La Clojure для интеграции Lisp ( видеокаст )
- Лисп для Интернета
- Онлайн-версия Практического Common Lisp (с Фрэнком Шираром)
- Land of Lisp -
(+ (+ very quirky) game based)
путь, но все это так просто - Установите Clojure и Sublime 2 на MacOS - отличное руководство по началу работы
- Посмотрите на книгу Clojure in Action . Работал на меня.
источник
Ответы:
Это, вероятно, противоречит рекомендациям большинства людей, но держитесь подальше от Emacs, если только вы этого не знаете. Особенно, если вы привыкли к современным средам разработки / редакторам.
Я говорю из опыта; Я пытался начать с Emacs, но необходимость изучать язык и редактор в то же время очень расстраивала меня (тем более что Emacs так сильно отличается от других инструментов). Я закончил с этим, начав с PLT Scheme (теперь Racket), которая поставляется со сравнительно простой кроссплатформенной IDE, централизованным хранилищем пакетов и потрясающими документами (включая промежуточное руководство, специально предназначенное для веб-разработки ). После того, как я получил полный контроль над Lisp, я вернулся к Emacs, взяв EL / CL в виде практического Common Lisp и Xah's Elisp Guide., В принципе, как я понимаю, вам нужно знать Lisp, прежде чем вы сможете эффективно использовать Emacs, и вам нужно знать Emacs, чтобы быть очень эффективным с CL / Elisp. Это означает, что вы можете либо выбрать Scheme, либо сначала изучить Common Lisp с помощью другого редактора (вероятно, личного LispWorks).
Если вы уже знаете Emacs, то да, Elisp - естественный шаг (хотя то, как вы будете получать удовольствие от использования Emacs, не зная, что сначала Elisp, мне не подходит).
YMMV, конечно, это то, что я нашел, помогло.
Так как ваш нынешний клуб - Java, вы, вероятно, можете получить много пробега от Clojure , Armed Bear или Kawa . Я не пробовал ни одного из них сам, не будучи парнем с Java, но Clojure специально рекомендован другими знакомыми мне Лисперсами. Кажется, что возможность сохранить вашу текущую виртуальную машину и IDE может помочь в процессе обучения.
источник
C-x C-c
). Я люблю Emacs до смерти, и в значительной степени живет в нем сейчас, но понимаю , что во - первых, вы боретесь года мышечной памяти говорю вамC-s
этоSave
, неSearch
и чтоUndo
этоC-z
. Я не буду рекомендовать такое разочарование тому, кто хочет изучать Лисп. Сначала выучите язык, поймите, что вы любите его, а затем начинайте биться руками с ясной целью.Ну, вы можете поразить двух зайцев, прочитав SICP : один изучает LISP (я имею в виду, что схема - это диалект Lisp), а другой - отличное понимание того, как программировать. Период !!
источник
У Конрада Барского есть отличный учебник под названием Casting SPELs в Lisp (SPEL - его сокращение от макросов). Он включает в себя создание простой игры типа Adventure и включает в себя макросы Lisp. Он также работал над вводной книгой, которая теперь доступна по адресу:
Научитесь программировать Lisp по одной игре за раз .
И из оглавления:
Однако я не знаю, что это означает для веб- разработки (как на HTML-страницах) с использованием Lisp. :)
Обновление - я вижу, что кто-то упомянул книгу «Структура и интерпретация компьютерных программ», которая напомнила мне, что MIT выложил в сеть все лекции SICP Video от Hal Abelson и Gerald Jay Sussman . Возможно, вы нашли книгу сухой, но лекции отличные. Несмотря на то, что они основаны на схемах, они все же очень хорошо знакомы с основными понятиями в Лиспе. Стоит скачать и посмотреть.
источник
Чтобы получить хорошее базовое введение в язык, прочитайте Практический Общий Лисп Питера Сейбела . Книга отличная.
Настройка emacs и SLIME может быть непростой задачей для новичка, где «хитрость» варьируется по величине в зависимости от вашей ОС. Как обычно, Windows получает короткий конец флешки, но люди сделали сложную часть и написали ее (SBCL, Emacs, SLIME).
Как только это вышло, Planet Lisp недавно ссылался на статью, описывающую, как настроить Hunchentoot и nginx.
Редактирование для конкретной ОС: MCLIDE может быть хорошим местом для начала. Я установил его, но у меня не было возможности использовать его, поэтому я не могу сказать что-нибудь полезное об этом. Это, конечно, выглядит интересно!
Изменить: Eclipse также имеет плагин Cusp .
источник
Уже много хороших ответов, но, если вы захотите погрузиться в мир веб-разработки с помощью Lisp, у меня есть еще несколько идей.
Clojure - это первый Lisp, у которого действительно отличные полнофункциональные веб-фреймворки, готовые к работе в прайм-тайм.
Если вы не заметили, я просто покрыл весь веб-стек, и все это написано на Clojure.
Я считаю, что с Clojure легче начать работу, чем с Common Lisp, с гораздо лучшей поддержкой функций / библиотек, чем Scheme.
Если вы вообще работаете с Java-фоном, у него есть дополнительное преимущество - он работает на JVM, что дает вам доступ ко всему Java stdlib, когда вам это нужно.
Доступная документация находится в стадии разработки, как и сами структуры. Но здесь есть довольно хорошее руководство .
Что касается редакторов ... если вам удобно с vim, вы можете использовать vim с SLIMV. Если вам нравится emacs, то с emacs / SLIME все в порядке. Есть довольно хорошая поддержка Eclipse и NetBeans для Clojure (или мне так сказали), но я обычно использую TextMate (хотя Sublime Text 2 быстро становится моим любимым редактором). Я знаю, что упускаю немного волшебства Лиспа, не используя более интегрированную среду, но я счастлив нажать ⌘-Tab, чтобы переключиться между моим редактором и REPL; Ваш пробег может варьироваться.
Если вы хотите, чтобы книга стала для вас толчком, я рекомендую Программирование Clojure от Стюарта Хэллоуэя и Аарона Бедры. 2-е издание только что вышло из PragProg , так что оно актуально.
Счастливого Лиспинга!
источник
Другой комментатор, Inaimathi , порекомендовал эту книгу несколько дней назад: The Little Schemer
Получил его сегодня, и я, как человек, обладающий очень большой библиотекой книг по программированию, приобретенной за многие годы, могу сказать, что, возможно, я прочитал только одну главу, но мне определенно понадобится версия в твердом переплете. Это звучит как Дао Дэ Цзин, множество маленьких фрагментов божественной мудрости относительно языка. Можно сказать «Схема», но изначально она называлась «Маленький ШУМ», языки на обсуждаемом уровне достаточно похожи, чтобы их можно было преподавать как единое целое.
Это не продвинутый текст, но он призван привить принципы языка и понять, для чего он на самом деле, как думать, как это. Я считаю, что это будет отличным стартером для LISP.
NB. Матрица компетенций программиста на самом деле упоминает эту книгу на высшем уровне компетентности того, что нужно искать. (см. раздел Книги)
источник
Очень хорошее место для начала использования Lisp - это редактор Emacs, где его можно использовать для переопределения чего угодно. Вы хотите, чтобы ключ 'e' вставлял время даты, просто напишите небольшой фрагмент Lisp, чтобы сгенерировать строку и связать ее с ключом e. Готово.
Это также позволит вам на самом деле использовать то, что вы изучаете в повседневной обстановке, если вы используете простой редактор в течение дня.
источник
Если вы будете разрабатывать на Mac, вы можете попробовать Clozure CL . Он поставляется с IDE, в которой есть совместимые с Emacs сочетания клавиш, и есть мост к Objective C, чтобы вы могли писать приложения Какао.
Кроме того, я прочитал «Практический общий Лисп», но обнаружил, что « Успешный Лисп» также полезен.
Наконец, некоторое терпение с вашей стороны будет вознаграждено. Производительность и незначительные победы придут довольно быстро, но большая победа может занять некоторое время.
источник
У меня есть копия ANSI Common Lisp прямо у моего стола. Я поднимаю его каждые пару лет и прохожу пару глав, затем зацикливаюсь на нескольких упражнениях, и он срывает список приоритетов. Это, вероятно, говорит вам больше обо мне, чем о книге. Книга кажется вполне компетентной ...
источник