Я опытный программист на C++ /. NET/Java Windows/web, пытающийся изучить (общий) Lisp. Я читаю Practical Common Lisp и используя SLIME.Изучение общих советов Лиспа для программиста Windows/C++
Я получаю язык Lisp достаточно легко, но у меня проблемы с механикой развития. Одна из моих проблем связана с Emacs. У меня нет опыта в этом, и я считаю, что это обычно путается с трудными для поиска/определения команд.
Конкретные вопросы:
- Я получаю REPL, но я не совсем понимаю, как я могу использовать его эффективно. Когда мне нужно изменить функцию, я должен повторно указать defun и внести изменения (утомительный и подверженный ошибкам). Как я могу сделать это лучше?
- Как я могу получить от ввода кода в REPL, чтобы фактически иметь программу? Я привык к модели C, где у вас есть файлы кода, которые вы можете просматривать, редактировать и перекомпилировать. Я знаю, что у Lisp есть что-то подобное (через функцию загрузки), но как получить функцию, которую я только что определил и протестировал в файл, который нужно сохранить? Я надеюсь, что есть лучший метод, чем мой текущий выбор + копия + вставка.
- Как вы отлаживаете ошибки? Есть ли возможность войти в код, как я бы с другими языками?
- Пока S-выражение действительно, я не получаю никаких ошибок при вводе
(defun ...)
. Пока я не попытаюсь использовать его, я выясню, что это неверно. Есть ли способ получить ошибки раньше (т. Е. Скомпилировать код)? - Есть ли какая-нибудь IDE, которая была бы более знакома мне или позволила бы мне играть на языке проще?
- Вместо этого следует переключиться на обучение Scheme?
Любые советы были бы весьма признательны!
Возможно, вы также захотите изучить Clojure; это lisp, который работает на JVM и имеет приятный interop. с Java. Я еще не работал с ним, но смотрел несколько лекций, и это выглядит красиво. – paul 2011-01-12 18:10:05