квазицитат / цитата в луа? - PullRequest
2 голосов
/ 01 мая 2010

В Лиспе я могу иметь:

(a b c d e f g)

что означает

look up b, c, d, e, f, g
look up a; apply value of a to above

Тогда я также могу иметь:

`(a b c d e f g)

что эквивалентно

 (list 'a 'b 'c 'd 'e 'f 'g)

Теперь, в Луа, я могу иметь:

[snipplet 1]
foo = {
  Foo,
  {Cat, cat},
  {Dog, dog}
};

Что в итоге, скорее всего, расширится до: {ноль, {ноль, ноль}, {ноль, ноль}}

В то время как я действительно хочу что-то вроде:

[snipplet 2]
{ "Foo", {"Cat", "cat"}, {"Dog", "dog"}}

Есть ли какой-нибудь метод, похожий на кавычки в lua?

Мне кажется, что [фрагмент 1] более привлекателен, чем [фрагмент 2], но я имею в виду фрагмент 2. 2. 1023 *

Спасибо!

Ответы [ 2 ]

6 голосов
/ 01 мая 2010

Для этого нет синтаксиса, но вы можете попробовать это решение во время выполнения:

setmetatable(_G,{__index=function (t,k) return k end})

Это приводит к тому, что все неопределенные переменные ведут себя так, как если бы они содержали строки со своими именами.

0 голосов
/ 17 мая 2011

Рассмотрим функцию, которая анализирует строку, содержащую синтаксис Lisp, и создает из нее таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...