]> git.jsancho.org Git - gacela.git/commitdiff
(no commit message)
authorjsancho <devnull@localhost>
Tue, 6 Sep 2011 18:54:06 +0000 (18:54 +0000)
committerjsancho <devnull@localhost>
Tue, 6 Sep 2011 18:54:06 +0000 (18:54 +0000)
src/gacela_mobs.scm

index aeb65d96c5c6b9ccf63b1f4171b8089c4e4b0522..10123017a7f37c9c66cddf3228412f1f5afe51f0 100755 (executable)
                        (lambda () (look attr))
                        (lambda (key . args) #f)))))))))
 
                        (lambda () (look attr))
                        (lambda (key . args) #f)))))))))
 
+(define-macro (define-mob mob-head . body)
+  (let ((name (car mob-head)) (attr (cdr mob-head)))
+    `(define ,(string->symbol (string-concatenate (list "make-" (symbol->string name))))
+       (lambda-mob ,attr ,@body))))
+
+(define-macro (lambda-mob attr . body)
+  `(lambda ()
+     (let ,(cons '(mob-id (gentemp)) attr)
+       (lambda ()
+        ,@body))))
+
 
 (define (get-mob-attr mob var)
   (let ((value (assoc-ref (mob 'get-attr) var)))
 
 (define (get-mob-attr mob var)
   (let ((value (assoc-ref (mob 'get-attr) var)))