Найдено результатов: 9

Как далеко может зайти LISP macros?

Я много читал, что LISP может переопределить синтаксис на лету, предположительно с помощью macros. Мне интересно, как далеко это на самом деле заходит? Можно ли переопределить структуру языка настолько, чтобы он стал пограничным компилятором для другого языка? Например, не могли бы вы изменить функциональную природу LISP на более объектно-ориентированный синтаксис и семантику, скажем, приблизив синтаксис к чему-то вроде Ruby?

В частности, можно ли избавиться от скобки hell, используя macros? Я узнал достаточно (Emacs-)LISP, чтобы настроить Emacs с помощью моих собственных микро-функций, но мне очень любопытно, как далеко может зайти macros в настройке языка.

macros   lisp    

399   14   16:03, 1st July, 2020


Почему я должен учить Lisp?

Я действительно чувствую, что должен учиться Lisp , и есть много хороших ресурсов, которые помогут мне это сделать.

Меня не пугает сложный синтаксис, но где в "traditional commercial programming" я найду места, где было бы целесообразно использовать его вместо процедурного языка.

Есть ли там коммерческое приложение-убийца, которое было написано в Lisp ?

functional-programming   lisp    

681   25   16:03, 1st July, 2020


Как привязать регулярное выражение к комбинации клавиш в emacs?

Для контекста я что-то вроде Новичка emacs. Я не использовал его очень долго, но использую его все больше и больше (мне это очень нравится). Также мне комфортно с lisp, но не очень хорошо знаком с elisp.

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

То, что я делал:

M-C-s ^.*Table\(\(.*\n\)*?GO\)

Обратите внимание, что я использовал новую строку выше , но я обнаружил, что для isearch-forward-regexp вам действительно нужно заменить \n в регулярном выражении на результат C-q Q-j . Это вставляет литеральную новую строку (без завершения команды), позволяя мне поместить новую строку в выражение и сопоставить строки.

Как я могу привязать это к комбинации клавиш?

Я смутно понимаю, что мне нужно создать функцию elisp, которая выполняет isearch-forward-regexp с выражением, но я нечетко разбираюсь в деталях. Я поискал в гугле и нашел большинство документов, которые должны быть немного запутанным.

Как я могу привязать регулярное выражение к комбинации клавиш в emacs?


У Майка Стоуна был лучший ответ на данный момент-не совсем то, что я искал, но он работал для того, что мне нужно

Edit-этот вид работал, но после сохранения макроса, когда я вернулся, чтобы использовать его позже, я не мог использовать его с C-x e . (т. е., если я перезагружаю emacs, а затем набираю M-x macro-name, а затем C-x e , я получаю сообщение в минибуфере, например "нет последнего макроса kbd" или что-то подобное)


@Mike камень-Спасибо за информацию. Я попытался создать макрос вот так:

C-x( M-C-s ^.*Table\(\(.*C-q C-J\)*?GO\) C-x)

Это создало мой макрос, но когда я выполнил свой макрос, я не получил того же выделения, которое я обычно получаю, когда использую isearch-forward-regexp . Вместо этого он просто перескочил к концу следующего матча выражения. Так что это действительно не работает для того, что мне нужно. Есть идеи?

Edit: похоже, я могу использовать macros, чтобы делать то, что я хочу, мне просто нужно думать вне коробки isearch-forward-regexp . Я попробую то, что вы предложили.

regex   emacs   lisp    

433   4   11:10, 4th August, 2020


Написание расширений Emacs на языках, отличных от Lisp

Я хотел бы взять существующее приложение (написанное в OCaml) и создать для него Emacs "interface" (например, режим Emacs GDB). Я бы предпочел сделать это без написания тонны кода Lisp. В терминах MVC я хотел бы, чтобы представление было Emacs, но для модели и контроллера оставалось (в первую очередь) OCaml.

Кто-нибудь знает способ написать расширения Emacs на языке, отличном от Lisp? Это может иметь форму привязки к расширению Emacs API на каком-либо другом языке (например, делая OCaml первоклассным языком расширения Emacs) или режим взаимодействия Emacs, где, например, расширение имеет канал, в который оно может записывать выражения Emacs Lisp и считывать результирующие значения.

emacs   lisp   ocaml    

390   6   02:15, 13th August, 2020


Что такое хороший начальный текст по функциональному программированию?

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

Так что же является хорошей отправной точкой? Моя цель состоит в том, чтобы иметь возможность использовать функциональный язык программирования для решения простых задач за 6 месяцев или около того, а также возможность переходить к более продвинутым темам, распознавать, когда функциональный язык является правильным инструментом для работы, и использовать язык для решения большего количества проблем в течение 2-3 лет. Мне нравятся книги, в которых много примеров, но также есть проблемы, над которыми нужно работать. Существует ли такая вещь для функциональных языков?

functional-programming   lisp   scheme    

501   15   13:18, 7th August, 2020


Lisp исполняемый файл

Я только начал изучать Lisp и не могу понять, как скомпилировать и связать код lisp с исполняемым файлом.

Я использую clisp и clisp -c для получения двух файлов:

  • .fas
  • .lib

Что мне делать дальше, чтобы получить исполняемый файл?

build   lisp   common-lisp   clisp    

453   6   03:47, 26th August, 2020


Бесплатная и простая среда для изучения Common LISP под Windows?

Разыскивается простая среда для использования в универе. Требования следующие:

— Простота использования

Никаких emacs'ов! =) Также не нужны супер-навороченные IDE. В идеале — редактор кода с подсветкой синтаксиса и какими-нибудь еще приятными фичами (что там актуально для лиспа?) + запуск интерпретатора из редактора кода легким движением руки нажатием кнопки «Run».

— Бесплатность

— Портабельность

Возможность без проблем запускаться с флэшки / сетевого диска. Нетребовательность к дополнительным библиотекам и т. д. Ибо на компьютеры никто ничего ставить не разрешит и сам ставить не будет.


Пытки гугла мало что дали: находятся либо консольные интерпретаторы, либо мощные и платные IDE, либо решения из разряда «попробуй сначала настрой». В общем, сложилось впечатление, что с этим вопросом в мире лиспа как-то все печально. Очень буду рад, если оно ошибочное )

Lisp   Редактор   кода    

311   4   04:41, 24th August, 2020


Бесплатная и простая среда для изучения Common LISP под Windows?

Разыскивается простая среда для использования в универе. Требования следующие:

— Простота использования

Никаких emacs'ов! =) Также не нужны супер-навороченные IDE. В идеале — редактор кода с подсветкой синтаксиса и какими-нибудь еще приятными фичами (что там актуально для лиспа?) + запуск интерпретатора из редактора кода легким движением руки нажатием кнопки «Run».

— Бесплатность

— Портабельность

Возможность без проблем запускаться с флэшки / сетевого диска. Нетребовательность к дополнительным библиотекам и т. д. Ибо на компьютеры никто ничего ставить не разрешит и сам ставить не будет.


Пытки гугла мало что дали: находятся либо консольные интерпретаторы, либо мощные и платные IDE, либо решения из разряда «попробуй сначала настрой». В общем, сложилось впечатление, что с этим вопросом в мире лиспа как-то все печально. Очень буду рад, если оно ошибочное )

Lisp   Редактор   кода    

402   4   18:35, 18th August, 2020


Есть ли смысл писать под AutoCAD?

В AutoCAD'e есть встроенный скриптовый язык Auto Lisp.

Как вы считаете, востребовано ли это сейчас, есть ли смысл его изучить (для написания плагинов)? Или проще найти коммерческую версию расширения для требуемого функционала?


Есть какие-нибудь начинающие курсы по AutoLisp, или просто следует учить Lisp, а с него уже перейти на AutoCAD'овскую версию?

Lisp   AutoCAD    

336   1   08:35, 9th August, 2020