Подтвердить что ты не робот

Любые предложения, для которых вариант Lisp можно узнать?

В конечном итоге я хочу узнать Clojure, но я нашел учебные ресурсы для Clojure, чтобы быть скудными для людей с небольшим опытом...

Мне интересно, было бы полезно начать с Scheme (читайте The Little Schemer и SICP) или какой-либо другой вариант Lisp.

Мой единственный опыт программирования - это Java и Python (что довольно мало). В конечном итоге я хочу изучать Clojure в свое время, так как я нахожу это увлекательным, и мои классы в колледже используют Java.

4b9b3361

Ответ 1

Книга Стюарта Хэллоуэй - отличный ресурс, если вы только начинаете. Есть несколько новых книг в произведениях, которые доступны для скачивания в ранней форме (Радость Clojure, Clojure в действии и т.д.).

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

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

Ответ 2

Я бы пошел с Схемой. Это простой, минималистический, чрезвычайно последовательный, и можно утверждать, что он более функциональный, чем LISP (что приятно, если вы хотите изучить новую парадигму). Я также нашел Scheme IDE более удобным для пользователя, чем LISP (Схема PLT является хорошей).

Кроме того, есть много превосходных ресурсов на Common LISP или Scheme, поэтому это не должно быть решающим моментом.

Ответ 4

Вторая рекомендация по захвату книги С. Хэллоуэй (я ее купил, и это здорово) и обучения Clojure сразу с места.

Я проработал (частично) через SICP некоторое время назад и действительно боролся. После этого я нашел Clojure приятным, возможно, потому, что у меня уже был некоторый опыт работы с Scheme. Тем не менее, особенно для тех, кто уже знаком с Java, я бы сказал, что круто прыгать прямо в Clojure. Обоснование:

  • У вас есть удобный доступ ко всему API Java и всему телу библиотек, написанных для Java; например, недавно я построил графический интерфейс Swing для/из программы Clojure и использовал HTTP-компоненты Apache для совершения некоторых сетевых перехватов.
  • Clojure пытается быть менее "ленивым", чем другие Lisps: Дело в том, что:
    • сокращение "ненужных" круглых скобок: например, (cond (condition) (value) (condition) (value)) вместо того, чтобы (cond ((condition) (value)) ((condition) (value)))
    • использование чего-то другого, кроме круглых скобок, в нескольких значимых местах; например списки аргументов и привязки для let и loop и т.д. находятся в квадратных скобках, а не в круглых скобках. Делает определения функций более легкими для чтения IMHO.
    • список не является единственной структурой данных. Есть хорошо интегрированные
      • [векторы] (случайные доступные как массивы) и
      • {HashMaps};
        Это облегчает жизнь, особенно если вы привыкли иметь их на Java.
  • Функция определения функций (defn). Вы все должны ценить это;)

Рекомендуемый первый учебник - Moxley Stratton Clojure Tutorial. Там также есть огромная SO-дискуссия по Clojure учебникам, которая дает много ссылок.

Что-то, что мне показалось чрезвычайно полезным с первых шагов в Clojure, было Clojure Cheat Sheet. Это касается общего случая, когда вы знаете, что вы хотите сделать, но не какую функцию использовать. Хотелось бы, чтобы другие языки приняли эту концепцию. Найдя вероятную функцию для вашей потребности, вы можете получить дополнительную документацию по ней с помощью (doc <name>) в Clojure REPL.

Ваш пробег может варьироваться, конечно; но к тому времени, когда Амазонка поставила Программу Clojure, я уже достаточно усвоил Clojure из Интернета, что книга была скорее источником "большой картины", чем учебником для меня. Но, конечно, можно сделать намного хуже, чем выучить Clojure программирование из этой книги.


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

Рискуя об этом позже, я также предлагаю (бесплатно) начало Clojure помощи и обучения по электронной почте, Google Chat или Wave. Мой адрес электронной почты должен быть довольно легко догадаться.

Ответ 5

Я начал с книги Practical Common Lisp и использовал Emacs и SLIME со Steel Bank Common Lisp.

Ответ 6

Я предлагаю начать с Схемы, а затем перейти к Common Lisp, поскольку схема проще. Поскольку вы новичок в Lisp, хорошей отправной точкой будет Обучить себе схему в Fixnum Days от Dorai Sitaram. После того, как вы будете довольны основами языка, вы можете начать работать с SICP.

Для Common Lisp вы можете следовать аналогичному пути: начните с простого подхода, основанного на учебнике, станьте удобным написанием небольших программ, а затем прочитайте книгу, в которой вы научитесь передовым концепциям. Я предлагаю следующие книги, чтобы узнать Common Lisp. Позаботьтесь о том, чтобы прочитать их в указанном порядке: COMMON LISP: Интерактивный подход (Стюарт К. Шапиро), Успешно Lisp (Дэвид Б. Ламкинс), Практическое общее Lisp (Питер Сейбел) и В Lisp (Пол Грэм).

Пол Грэм также написал ANSI Common Lisp, что является хорошей ссылкой.

Ответ 7

Изучение чего-то нового почти всегда хорошо. И если вы только знаете Java и Python, то изучение функционального языка программирования растягивает ваш разум.

Схема является одним из простейших вариантов LISP, и она хорошо документирована. Пойдите для этого!

Ответ 8

На самом деле существуют только два общих варианта: Scheme и Common Lisp. Они очень похожи, оба имеют множество реализаций, и переключение между ними достаточно просто. Если вы хотите написать приложение, я бы предложил CL из-за превосходных библиотек. Если вы хотите изучить стиль FP, перейдите к Схеме.

В дополнение к упомянутым здесь книгам, я также предлагаю "Парадигмы программирования искусственного интеллекта: тематические исследования в общем Lisp" Питера Норвига.

Ответ 9

Я был в вашем положении и разделял мое внимание между Scheme и Common Lisp. Оглядываясь назад, я думаю, что (в целях обучения Clojure, в отличие от личного развития) мне было бы лучше сосредоточиться на Common Lisp, с практическим общим Lisp и PG On Lisp.

Теперь, когда есть реальные книги, посвященные Clojure, вам обязательно нужно пойти с одним из них. Радость Clojure - отличная книга, а 4clojure.com - хороший способ получить головоломку для решения задач с помощью Clojure.

Ответ 10

newLISP - хм..., потому что это современный (и единственный?) LISP общий язык сценариев? (Я не считаю AutoLISP и т.д., Потому что они являются специфичными для домена скриптами langs). Поэтому, если вам это очень понравится, возможно, в будущем вы отбросите Python через окно:-))

Ответ 11

Я бы пошел с LFE, скорость, которую вы узнаете, пропорциональна количеству ошибок, которые вы испытываете. Выбор LFE даст вам одновременно Erlang и Lisp.

Ответ 12

Для зрителей/аудиторов я очень рекомендую серию видеороликов Righ Hicky на blip.tv
Clojure для java-программистов, а затем просто нажмите REPL. Остальная часть серии следует естественным образом и действительно может получить творческие соки. PCL (Practical Common Lisp) - захватывающая книга, хотя некоторые из них на самом деле не применимы к clojure. Я настоятельно рекомендую главу "Макросы".