Описание тега homoiconicity
Гомоиконность означает, что язык использует тот же синтаксис для структур данных, что и для операторов и объявлений. Например, Lisp обрабатывает структуры списков и состоит из списков символов и других списков. XSLT преобразует данные XML и записывается как допустимый XML.
2
ответа
Гомойконичность и SQL
В настоящее время я использую emacs sql-mode в качестве оболочки sql, (упрощенный) ответ на запрос приведен ниже: my_db=# select * from visit limit 4; num | visit_key | created | expiry ----+-----------------------------+----------------------------…
19 ноя '10 в 13:39
2
ответа
Что именно означает гомойконичность?
Я пытался понять статью в Википедии о гомойконичности, но она слишком многословна и не объясняет основную теорию этого слова в сжатой форме. Я должен добавить, что я не являюсь носителем английского языка, поэтому я предпочитаю простой английский, а…
27 июн '11 в 12:15
4
ответа
Можно ли разложить функцию Clojure?
Хотя я могу неправильно истолковывать концепцию гомойконичности, я понял ее как "код, являющийся данными". Итак, я могу написать код так: (def subject "world") (def helo '(str "Hello " subject)) С этой точки зрения, helo это только данные, но они мо…
23 май '13 в 15:34
3
ответа
Мета-схема XML
Поскольку XML-схемы (XSD) сами являются XML-файлами, должна быть возможность построить схему схемы (мета-схемы), верно? Я изо всех сил пытаюсь совершить этот подвиг. Я хотел бы создать схему, которая описывает схему с одним корнем complexType содерж…
16 июн '10 в 08:41
5
ответов
Теория гомоиконического типа
Лисп обладает свойством гомойности, то есть представление кода, используемого языковой реализацией (списками), также доступно и идиоматически используется программами, которые хотят представлять код для своих собственных целей. Другое основное семей…
29 ноя '11 в 01:08
15
ответов
Что делает макросы Lisp такими особенными?
Читая эссе Пола Грэма о языках программирования, можно подумать, что макросы Lisp - единственный путь. Как занятый разработчик, работающий на других платформах, я не имел права использовать макросы Lisp. Как человек, который хочет понять гул, пожалу…
06 ноя '08 в 07:33
4
ответа
Где я могу получить больше информации о гомоконичности?
Я экспериментировал с функциональным программированием и до сих пор не понимаю эту концепцию. Ребята, знаете ли вы какие-нибудь хорошие книги или учебники или примеры, которые обсуждают эту концепцию? Или, если бы вы могли показать небольшие фрагмен…
05 май '09 в 18:19
1
ответ
В каком смысле такие языки, как эликсир и джулия, гомоичны?
Гомиконичность в Лиспе легко увидеть: (+ 1 2) это как вызов функции + с 1, 2 в качестве аргументов, а также список, содержащий +, 1, а также 2, Это одновременно и код, и данные. На языке, как Юлия, хотя: 1 + 2 Я знаю, что мы можем разобрать это в Ex…
30 июл '15 в 20:50
6
ответов
Существуют ли языки программирования, которые рассматривают функции как структуры данных, с которыми можно работать?
Я написал следующую функцию как часть разрабатываемого плагина jQuery: $.fn.append2 = function(collection, callback) { var $this = this; $.each(collection, function(key, value) { $this.append(callback ? callback(key, value) : value); }); return this…
27 фев '11 в 06:10
7
ответов
Функция обхода схемы в виде списка
Разве нельзя трактовать функции в Scheme как любой другой список? По сути, я хочу сделать что-то вроде этого: (define (foo) "hello") (cdr foo) ; or similar, should return the list ((foo) "hello") Я нашел подобное обсуждение по этому поводу, и я чувс…
06 мар '10 в 17:59
2
ответа
Как напечатать блок без его оценки в Rebol
Я пытаюсь собрать генератор кода, и мне нужно напечатать блок (который содержит некоторый код для целевого языка) без его оценки (т.е. блока). Как мне это сделать? Редактировать 1 - Я понимаю, что это может быть легко достигнуто, если бы я должен бы…
03 янв '14 в 21:05
1
ответ
Уровни гомоиконичности
Это продолжение моего предыдущего вопроса. Я не уверен, что код на Лиспе настолько же гомоичен, как и машинный код на архитектуре фон Неймана. Мне кажется очевидным, что в обоих случаях код представляется в виде данных, но также очевидно, что вы мож…
04 июн '13 в 09:54
18
ответов
Практический пример гибкости Lisp?
Кто-то пытается продать мне Лисп, как сверхмощный язык, который может делать все что угодно, а потом и кое-что. Есть ли практический пример кода силы Лиспа?(Предпочтительно вместе с эквивалентной логикой, закодированной на обычном языке.)
19 сен '08 в 22:10
4
ответа
Homoiconic и "неограниченный" самоизменяющийся код + действительно ли lisp самоизменяется?
Я буду признателен за то, что мои знания Lisp чрезвычайно минимальны. Однако я чрезвычайно интересуюсь языком и планирую начать серьезно изучать его в ближайшем будущем. Мое понимание этих вопросов, без сомнения, неверно, поэтому, если я скажу что-т…
13 дек '11 в 14:12
2
ответа
Привязки шаблонов для экзистенциальных конструкторов
Когда я писал на Haskell программистом, который раньше работал с Lisp, на меня обратили внимание странные вещи, которые я не смог понять. Это хорошо компилируется: {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE ExistentialQuantification #-} data Foo =…
16 ноя '18 в 22:35
1
ответ
Почему полезно рассматривать код как данные в lisp
Сейчас я изучаю emacs lisp и удивляюсь, почему это может быть полезно для обработки кода как данных. Какие преимущества такого подхода. Я видел одно объяснение, так как это альтернатива традиционной архитектуре фон Неймана, где существует четкое раз…
26 авг '14 в 08:12
1
ответ
Как сделать так, чтобы программные конструкции clojure было легче идентифицировать?
Clojure, будучи диалектом Lisp, унаследовал гомосиконичность Lisp. Гомойсоничность упрощает метапрограммирование, поскольку код можно обрабатывать как данные: отражение в языке (проверка сущностей программы во время выполнения) зависит от единой, од…
23 дек '17 в 23:10
1
ответ
В каких случаях трудно различить код и данные?
Говорят, что код - это данные (и наоборот, то есть гомоичные) в Rebol и Red. Кроме того, сказано, что невозможно различить два. Насколько я понимаю, здесь есть 2 случая: Определить с уверенностью код из смеси кода и данных Определить с уверенностью …
17 мар '17 в 10:22
10
ответов
Может ли компилируемый язык быть гомойным?
По определению слово homoiconic означает: То же представление кода и данных В LISP это означает, что вы могли бы иметь цитируемый список и оценить его, поэтому (car list) будет функция и (cdr list) аргументы. Это может происходить как во время компи…
06 авг '09 в 13:23
4
ответа
Clojure менее гомоиконичен, чем другие lisps?
Утверждение, которое, как я помню, повторялось в видеороликах Clojure for Lisp Programmers , состоит в том, что большая слабость ранних Лиспов, особенно Common Lisp, заключается в том, что слишком многое связано со структурой списка Лиспов, особенно…
18 янв '21 в 20:24