Какой может быть самый быстрый и наименее болезненный способ узнать LISP для разработчика C?

Я когда-то работал разработчиком C на платформе Linux. Недавно закончил K и R и немного изучил реализацию ООП в C. Кроме того, я изучил С++ и Java. Все это было на платформе Linux.

Теперь я планирую изучить LISP. Я прошел через LISP обсуждения, направленные на новичков по SO, особенно Каков наилучший способ узнать LISP.

Насколько я понимаю, переход от процедурной к функциональной парадигме программирования - это большой шаг. Мышление с точки зрения новой парадигмы было бы реальной проблемой. Так же, как это было, когда я впервые узнал ООП.

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

Теперь, когда я работал на C, мои текущие проекты на моем рабочем месте также находятся на C. Я обеспокоен тем, как я могу научиться рассматривать проблемы с точки зрения функционального программирования.

  • Что может быть лучшим способом сделать переход на LISP для разработчика C?
  • Должен ли я изучать какой-либо другой промежуточный язык, прежде чем переходить на LISP?
  • Если да, то какой язык может быть?
  • Любой конкретный текст, который поможет мне думать о способе функционального программирования?
  • Любое предложение, которое сделает этот переход быстрее и проще?

Спасибо за ваше время. Любая помощь и предложение были бы весьма полезны.

Ответы

Ответ 1

Возможный дубликат

Вы могли бы сделать намного хуже, чем MIT Course 6.001 "Структура и интерпретация компьютерных программ" . Класс использует текст Абельсона и Суссмана; см. также основной сайт книги для получения дополнительной информации.

В классе используется Scheme, диалект LISP, который значительно чище и проще в использовании, чем Common LISP (да, это мнение, поделитесь с ним). Переключение на Common LISP не будет сложным позже. Paul Graham В LISP текст "не принимайте пленников" при программировании в Common LISP. Его ANSI Common LISP является более мягким введением к теме.

Теперь о плохих новостях. Сделать переход к WORKING в LISP, вероятно, будет очень сложным, так как там есть намного больше C/С++ и Java.

Я бы посоветовал прыгать прямо в изучение LISP. Это не так сложно.

Вам понадобится система LISP для воспроизведения. Если вы используете Scheme, трудно выполнить систему MIT/GNU Scheme. Для Common LISP существует несколько вариантов: я, вероятно, начинаю с GCL - GNU Common LISP. Версии доступны для Linux и Windows.

Ответ 2

Попробуйте книги:

Практический общий Lisp автор Питер Сибель (доступен в Интернете по адресу http://www.gigamonkeys.com/book/).

ANSI Common Lisp by Paul Graham затем попробует включить Lisp тем же автором.

Парадигмы программирования искусственного интеллекта: тематические исследования в общем Lisp Питера Норвига

Другие места для поиска помощи включают канал # lisp на FreeNode и LispForum (http://www.lispforum.com/).

Из этих PCL, вероятно, проще всего войти, если вы пытаетесь узнать Lisp как способ изучения функционального программирования, вы будете разочарованы, но вы можете использовать Lisp для выполнения FP, но это не строго язык FP.

Ответ 3

Книга, изначально выученная lisp с The Little Schemer от DP Friedman. На самом деле ваша голова превращается в менталитет функционального программирования.

Ответ 4

Прочтите "Практическое общее Lisp". В моей компании у нас есть как минимум 70 программистов, ежедневно использующих Common Lisp для сложных, практических программ (поиск авиабилетов, системы бронирования авиабилетов), а когда появляется новый программист, который не знаком с Lisp, мы просто передаем его или ее копию "Практическое общее Lisp". Я не могу сказать достаточно о том, насколько велика эта книга.

Ответ 5

Я нашел основу python (лямбда-функции и т.д.), чтобы быть очень полезной в схватке lisp.

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

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

Ответ 6

Я лично нашел GNU Emacs Lisp Tutorial удовольствие читать. Это даст вам общие идеи.

Ответ 7

Я рекомендую первое чтение Успешно Lisp до главы 3, не продолжайте и не прочитайте главу 4. 3, однако, хорошо понимайте мышление Lisp. Затем прочитайте "Нежный", а затем "Практический общий" Lisp. Оттуда вам может помочь только обычный общий эксперимент Lisp.

Ответ 8

Недавно я купил Land of Lisp и нашел, что это довольно развлекательный и образовательный. Я могу порекомендовать его.