Another handy dandy conditional
Posted: Tue Feb 26, 2008 3:18 am
Here is a conditional form that I find very useful
This is a conditional with three bodies. X and Y can either be a list or a number. If X or Y is a list then the length of the list is used for comparison. The conditional looks at the two numbers X and Y. If X<Y body1 is executed elseif X=Y body2 is executed else body3 is executed. This happens a lot and I wish I would have thought of this a long time ago.
Code: Select all
(define (<=> x y body1 body2 body3)
(if (list? x)(setq x (length x)))
(if (list? y)(setq y (length y)))
(eval (if (< x y) body1
(= x y) body2
body3
)))