язык picoLisp: onOff вопрос - PullRequest
       37

язык picoLisp: onOff вопрос

2 голосов
/ 27 октября 2009

Этот вопрос действительно спорный, я думаю, что я столкнулся с ошибкой в ​​моей программе или чем-то в этом роде. Если вы все еще ищете PicoLisp и поведение onOff, посмотрите здесь .

<час />

<ч /> <ч />

это должно произойти?

: (show NIL)
NIL NIL
-> NIL
: (onOff)
-> T
: (show NIL)
T T
-> T
: (=T NIL)
-> T
: 

(onOff sym ..) -> flg

Logical negates the VAL's of all argument symbols sym. Returns the
new value of the last symbol.
  • Разве имена символов не должны передаваться явно?
  • Почему он возвращает значение последнего символа?

Ответы [ 2 ]

1 голос
/ 31 октября 2009

Это ошибка в реализации PicoLisp с макросом onOff .

Параметры функции onOff: : (onOff var ..) -> flg

Он принимает var и многие другие переменные и логически отрицает их (true становится ложным, false становится истинным).Готов поспорить, что макрос onOff принимает один список аргументов.Это означает, что если ему не дано никаких аргументов, этот список аргументов будет пустым, что означает, что символ, данный функции, равен NIL.

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

0 голосов
/ 11 июня 2015

Это была красная сельдь, ошибки не было. Извините, HN неправильный звонок. Кроме того, теперь он находится под лицензией MIT (X11), самой либеральной из лицензий на открытый код.

...