What could be the fastest and least painful way to learn LISP for a C developer?

I have been working as a C developer on Linux platform for sometime now. Recently finished K & R and did a little study of implementing OOP in C. Beside that I have studied C++ and Java. All of it has been on Linux platform.

Now I plan to learn LISP. I have gone through LISP discussions directed towards beginners on SO, especially What’s the best way to learn LISP.

I understand, moving from procedural to functional programming paradigm is a big move. Thinking in terms of the new paradigm would be the real challenge. Just like the way it was when I learned OOP for the first time.

It is the paradigm I am really worried about. When I started OOP, most of the time was consumed in learning how to view problems in terms of OOP. Syntax was not so difficult to grasp.

Now as I have been working in C, my current projects at my workplace are also in C. I am concerned how could I learn to view problems in terms of functional programming.

  1. What could be the best way to make shift towards LISP for a C developer?
  2. Should I learn some other intermediate language before I move to LISP?
  3. If yes then which language that could be?
  4. Any particular text that would help me think in the way of functional programming?
  5. Any suggestion that would make this shift faster and easier?

Thanks for your time. Any help and suggestion would be greatly appreciated.

15
задан Community 23 May 2017 в 12:01
поделиться

6 ответов

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

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

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

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

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

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

6
ответ дан 1 December 2019 в 02:45
поделиться

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

1
ответ дан 1 December 2019 в 02:45
поделиться

Я обнаружил, что основы python (лямбда-функции и тому подобное) очень помогают в освоении lisp.

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

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

1
ответ дан 1 December 2019 в 02:45
поделиться

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

Practical Common Lisp by Peter Siebel (доступна онлайн на http://www.gigamonkeys.com/book/ ).

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

Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp by Peter Norvig

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

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

10
ответ дан 1 December 2019 в 02:45
поделиться

Книга, по которой я начал изучать Лисп, называется The Little Schemer Д.П. Фридмана. Действительно заставляет вас задуматься о функциональном программировании.

4
ответ дан 1 December 2019 в 02:45
поделиться

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

2
ответ дан 1 December 2019 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: