Search
Write a publication
Pull to refresh

Comments 8

and и or – это специальные формы, а не функции! Это принципиально, и на этом в Лиспе много построено. Второй аргумент не вычисляется, если первого достаточно.

Попробуйте у себя и в clisp:

(and nil (princ "Hello"))
(or t (princ "Hello"))

Специальные формы реализуются макросами.

А макросов пока нет.

Ну тогда пишите логику в парсере.

В Лиспеor и and ничем не отличаются от if (собственно, or – это сокращённая форма cond без лишних скобок).

Ну, информация полезная для меня, но у меня пока or, and это обычные логические операции.

quote и ' имеют только один аргумент. Это связано с тем, что

('hello world!)

– это форма из литерала 'hello и значения атома world!. Иначе вы так всю программу заквотите одной кавычкой.

Ну... За квотировать всю программу не получится ведь ('hello world!) отделен от всего.

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

По другому не выполнится.

Sign up to leave a comment.

Articles