Hi, all, do you guys know how to do "and" and "or" in lisp?
-
- Posts: 1
- Joined: Sun Nov 03, 2013 9:24 am
Hi, all, do you guys know how to do "and" and "or" in lisp?
I mean in the "if" and "cond". How to evaluate multiple conditions? Thx.
Re: Hi, all, do you guys know how to do "and" and "or" in li
See Peter Seibel's Practical Common Lisp, Chapter 7: Standard Control Constructs
Re: Hi, all, do you guys know how to do "and" and "or" in li
cond is just a macro that ends up being nested ifs. It has implicit progn so a if where the consequent or alternative needs a progn or if it's more than one predicate simply looks better written as a cond.
and and or are macros that end up being nested ifs as well. Just use macroexpand to see the maging. (don't forget to quote the code or else it will try to expand the result)
Code: Select all
(macroexpand
'(cond ((test-predicate-function arg) (consequent1-with-sideeffect)
(consequent2-tail-call))
(test-predicate-value consequent-value1)
(t (alternative-expression))))
; ==>
(if (test-predicate-function arg)
(progn (consequent1-with-sideeffect)
(consequent2-tail-call))
(if test-predicate-value
consequent-value1
(alternative-expression)))
I'm the author of two useless languages that uses BF as target machine.
Currently I'm planning a Scheme compiler :p
Currently I'm planning a Scheme compiler :p