altos/lisp: Optimize chunk searching in collect
[fw/altos] / src / lisp / ao_lisp_const.lisp
index 4dc63bbf8e82c88daf93493c8557f3ba8f159c64..6fbc35b67993fc2798effb659063db749d247c9a 100644 (file)
 (defun 1+ (x) (+ x 1))
 (defun 1- (x) (- x 1))
 
-                                       ; boolean operators
-
-(def or (lexpr (l)
-              (let ((ret nil))
-                (while l
-                  (cond ((setq ret (car l))
-                         (setq l nil))
-                        ((setq l (cdr l)))))
-                ret
-                )
-              )
-     )
-
-(def and (lexpr (l)
-              (let ((ret t))
-                (while l
-                  (cond ((setq ret (car l))
-                         (setq l (cdr l)))
-                        ((setq ret (setq l nil)))
-                        )
-                  )
-                ret
-                )
-              )
-     )
-
                                        ; define a set of local
                                        ; variables and then evaluate
                                        ; a list of sexprs
                )
      )
 
-                                       ; run the let macro once to
-                                       ; evaluate all of the internal
-                                       ; macro calls
+                                       ; boolean operators
+
+(def or (lexpr (l)
+              (let ((ret nil))
+                (while l
+                  (cond ((setq ret (car l))
+                         (setq l nil))
+                        ((setq l (cdr l)))))
+                ret
+                )
+              )
+     )
+
+                                       ; execute to resolve macros
+
+(or nil t)
+
+(def and (lexpr (l)
+              (let ((ret t))
+                (while l
+                  (cond ((setq ret (car l))
+                         (setq l (cdr l)))
+                        ((setq ret (setq l nil)))
+                        )
+                  )
+                ret
+                )
+              )
+     )
+
+                                       ; execute to resolve macros
 
-(let ((let-param 1)))
+(and t nil)