Что может быть самым быстрым и наименее болезненным способом изучения LISP для разработчика на C? - PullRequest
15 голосов
/ 20 августа 2010

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

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

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

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

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

  1. Как лучше всего перейти на LISP для разработчика на C?
  2. Должен ли я выучить какой-нибудь другой промежуточный язык, прежде чем перейти на LISP?
  3. Если да, то на каком языке это может быть?
  4. Какой-нибудь конкретный текст, который поможет мне подумать о способе функционального программирования?
  5. Есть ли какие-либо предложения, которые могли бы сделать этот сдвиг быстрее и проще?

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

Ответы [ 8 ]

10 голосов
/ 20 августа 2010

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

Практический Общий Лисп Питера Зибеля (доступен онлайн на http://www.gigamonkeys.com/book/).

ANSI Common Lisp Пола Грэма, затем попробуйте On Lisp того же автора.

Парадигмы программирования искусственного интеллекта: практические примеры в Common Lisp by Peter Norvig

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

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

6 голосов
/ 20 августа 2010

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

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

В классе используется схема, диалект LISP, который значительно чище и проще в использовании, чем Common LISP (да, это мнение,иметь дело с этим).Переход на Common LISP не будет таким сложным позже. Пола Грэма о LISP - это текст «не бери в плен» о программировании в Common LISP.Его ANSI Common LISP - более мягкое введение в предмет.

Теперь о плохих новостях.Переход на РАБОТУ в LISP, вероятно, будет очень трудным, поскольку существует гораздо больше заданий на C / C ++ и Java.

Я бы рекомендовал сразу перейти к изучению LISP.Это не так сложно.

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

4 голосов
/ 24 августа 2010

Книга, с которой я поначалу узнал: «1001 * Маленький интриган» Д. П. Фридмана.Действительно вселяет голову в функциональное программирование.

2 голосов
/ 30 августа 2010

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

1 голос
/ 27 ноября 2010

Я недавно купил Землю Лиспа , и нашел ее довольно интересной и познавательной.Я могу рекомендовать это.

1 голос
/ 28 августа 2010

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

1 голос
/ 20 августа 2010

Лично я нашел GNU Emacs Lisp Tutorial приятным для чтения.Это даст вам общие идеи.

1 голос
/ 20 августа 2010

Я обнаружил, что основа Python (лямбда-функции и т. Д.) Очень полезна для понимания лиспа.

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

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

...