Вопрос

Я уже много лет программировал, пробираясь через Различные итерации Blub (Basic, Assembler, C, C ++, Visual Basic, Java, Ruby не в определенном порядке «Blub-insess»), и я бы хотел выучить LISP. Тем не менее, у меня много интертии, что с ограниченным временем (семья, работа на полный рабочий день и т. Д.) И удобное счастье с моим нынешним Blub (Java).

Итак, мой вопрос в том, что я тот, кто действительно хотел бы выучить LISP, каковы были бы начальные шаги, чтобы получить хороший результат, что демонстрирует превосходство LISP в веб -разработке? Может быть, я упускаю суть, но вот как я изначально увидел применение моих знаний LISP.

Я думаю: «Используйте диалект A, используйте IDE B, следуйте инструкциям на странице C, ставите под сомнение ваше здравомыслие после монада, используя консультант D». Я просто хотел бы знать, что люди здесь считают оптимальным набором ценностей для A, B, C и, возможно, D. также некоторое обсуждение относительной достоинства изучения такого мощного языка, а не, скажем, становления рельсами эксперт

Просто чтобы добавить более подробную информацию, я буду разрабатывать на MacOS (или VM Linux) - спасибо на основе Windows.

Примечания для тех, кто просто просматривает

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

Интересные ссылки

Предполагая, что вы приедете в LISP из Java Faine, этот набор ссылок заставит вас быстро начать.

  1. Используя плагин Intellij La Clojure для интеграции LISP (видеокаст)
  2. LISP для Интернета
  3. Онлайн -версия Практический общий LISP (c/o Фрэнк Шеарар)
  4. Земля Липпа а (+ (+ very quirky) game based) путь, но делает все таким простым
  5. Установите Clojure и Sublime 2 на macOS атмосфера превосходно Начало работы
  6. Посмотрите на Clojure в действии книга. Работал на меня.
Это было полезно?

Решение

Это, вероятно, противоречит рекомендациям большинства людей, но держатся от Emacs, чтобы начать, если вы уже не знаете этого. Особенно, если вы привыкли к современным IDES/Editors.

Я говорю из опыта; Я пытался начать с Emacs, но необходимость выучить язык и редактор одновременно действительно разочаровал меня (тем более, что Emacs так отличается от других инструментов). Я закончил тем, что бросил его, начал Схема PLT (теперь ракетка) который поставляется с сравнительно простой кроссплатформенной IDE, централизованным репозиторий упаковки а также Сказочные документы (включая Промежуточный учебник, специально предназначенный для веб -разработки) После того, как я получил чистую сцепление с LISP, я закончил тем, что вернулся к Emacs, взяв EL/CL через Практический общий LISP а также Lesp. Анкет По сути, как я вижу, вам нужно знать LISP, прежде чем вы сможете эффективно использовать EMACS, и вам нужно знать EMACS, чтобы быть очень эффективным с CL/Elisp. Это означает, что вы можете либо забрать схему, либо сначала изучить общий LISP с помощью какого -то другого редактора (наверное, Lispworks, вероятно).

Если вы уже знаете EMACS, то да, Элисп - естественный шаг (хотя, как бы вы наслаждались использованием EMACS, не зная, что Elisp First First Be Be Be Me).

YMMV, конечно, это именно то, что я нашел.

Поскольку ваш нынешний Blub - Java, вы, вероятно, могли бы получить много пробега из Клоджюр, Вооруженный медведь или же Кава. Анкет Я сам не пробовал ни одного из них, не будучи парнем из Java, но Clojure, в частности, настоятельно рекомендуется от других лиспев, которые я знаю. Похоже, что способность сохранить вашу текущую виртуальную машину и IDE может помочь с процессом обучения.

Другие советы

Ну, вы можете ударить двух птиц, читая SICP ; Один из них изучает LISP (я имею в виду, что схема - это диалект LISP), а другой - отличное понимание того, как программировать. Period!

Конрад Барски имеет большой Учебник под названием Кастинг Спелс в LISP (Спель - его аббревиатура для макросов). Он включает в себя простую игру приключенческого типа и прыгает прямо на макросы LISP. Он также работал над вступительной книгой, которая теперь доступна по адресу:

Научитесь программировать LISP, по одной игре за раз.

И из содержимого:

  • Создайте свой собственный веб-сервер и используйте его для игры на основе браузеров

Я не знаю, что это подразумевает для Интернета разработка (как на HTML -страницах), однако, используя LISP. :)

Обновление - я вижу, что кто -то упомянул книгу «Структура и интерпретация компьютерных программ», которая напомнила мне, что MIT разместил онлайн, весь SICP Видео -лекции Хэла Абельсона и Джеральда Джея Суссмана. Анкет Возможно, вы нашли книгу сухой, но лекции превосходны. Несмотря на то, что они основаны на схеме, они по-прежнему очень хорошо получают основные концепции в LISP. Стоит скачать и просмотреть.

Чтобы получить хорошее базовое введение в язык, прочитайте Питер Сейбель Практический общий LISP. Анкет Книга отличная.

Настройка EMACS и слизь может быть сложной для новичка, где «хитрый» варьируется по величине в зависимости от вашей ОС. Как обычно, Windows получает короткий конец палки, но люди сделали сложную часть и написал это (SBCL, EMACS, слизь).

Как только это выйдет в путь, планета Липс сослалась на Статья недавно описывая, как настроить Hunchentoot и Nginx.

ОС-специфический редактирование: McLide Может быть, хорошее место для начала. Я установил его, но у меня не было возможности использовать его, поэтому я не могу сказать ничего полезного в этом. Это, безусловно, выглядит интересно!

РЕДАКТИРОВАТЬ: Eclipse имеет Керна плагин тоже.

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

Клоджюр Это первый LISP, который я видел, имея действительно отличные веб-фреймворки с полным стеком, которые готовы к прайм-тайм.

  • Нуар является солидной веб-структурой с маршрутизацией, шаблоной и т. Д., Аналогично Sinatra, но немного более богатым функциями. Он использует кольцо, которое в основном является эквивалентом стойки в рубине.
  • Корма это библиотека абстракции SQL, которая очень хорошо сочетается с Noir.
  • Пино Является ли плавкой на стороне клиента, написанной полностью в Clojurescript, которая приводит нас к:
  • Clojurescript является компилятором для Clojure, который нацелен на JavaScript.

Если вы не заметили, я просто рассмотрел весь веб -стек, и это Все написано в Clojure.

Я считаю, что Clojure немного проще начать с Common LISP, с гораздо лучшим набором функций/поддержкой библиотеки, чем схема.

Если вы вообще приезжаете из Java Faine, он имеет дополнительное преимущество работы на JVM, что дает вам доступ ко всему Java stdlib, когда он вам нужен.

Доступная документация ISA Работает в процессе, как и сами рамки. Но есть довольно хороший учебник Прямо здесь.

Что касается редакторов ... если вам удобно с VIM, вы можете использовать VIM с SLIMV. Если вам нравится Emacs, Emacs/Slime в порядке. Существует довольно хорошая поддержка Eclipse и Netbeans для Clojure (или мне так говорят), но я обычно использую Textmate (хотя Sublime Text 2 быстро становится моим редактором). Я знаю, что упускаю небольшую магию Lisp, не использующую более интегрированную среду, но я рад ударить ⌘-tab, чтобы переключиться между моим редактором и Repl; Ваш пробег может варьироваться.

Если вы хотите, чтобы книга запустила вас, я рекомендую Программирование Clojure Стюарт Хэллоуэй и Аарон Бедра. 2 -е издание только что вышло из Pragprog, так что это в курсе.

Счастливого Лисанга!

Другой комментатор, Inaimathi, рекомендовал эту книгу несколько дней назад: Маленькая схема

Получил его сегодня, и я могу сказать, что, как человек, у которого есть очень здоровенная библиотека книг по программированию, приобретенную за много лет, что я мог прочитать только одну главу, но мне определенно понадобится версия в твердом переплете. Он читается как Tao Te Ching, множество небольших фрагментов божественной мудрости относительно языка. Он может сказать схему, но первоначально она называлась «маленьким лиссами», языки на уровне, о котором он обсуждает, достаточно похожи на то, что его учат как один.

Это не продвинутый текст, но у него есть миссия, чтобы привить принципы языка и для чего он на самом деле, как думать так. Я считаю, что это будет отличный стартер для Lisp.

Нб. Матрица компетенции программиста На самом деле упоминает эту книгу на высшем уровне компетентности вещей, которые нужно искать. (См. Раздел книг)

Очень хорошее место для начала использования LISP находится в редакторе EMACS, где его можно использовать для переопределения практически всего. Вы хотите, чтобы ключ «E» вставила время даты, просто напишите небольшой фрагмент LISP, чтобы сгенерировать строку и привязать ее к клавишу E. Сделанный.

Это также позволит вам использовать то, что вы изучаете в ежедневной настройке, если вам случайно использует простой редактор в течение дня.

Если вы будете развиваться на Mac, вы можете попробовать Кл. Анкет Он поставляется с IDE, который имеет совместимые с EMACS нажатия клавиш, и есть мост для объектива C, так что вы можете писать приложения какао.

Кроме того, я читал практическую общую LISP, но нашел Успешный липс чтобы быть полезным.

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

У меня есть копия ANSI Common Lisp Прямо здесь у моего стола. Я получаю его каждые пару лет и получаю пару глав, а затем застрял в нескольких упражнениях, и это соскользнул с приоритетного списка. Это, вероятно, рассказывает вам больше обо мне, чем книга. Книга кажется совершенно компетентной ...

Лицензировано под: CC-BY-SA с атрибуция
scroll top