       "(begin (+ 1 4))" lisp-eval
     ] unit-test
     
-    { 3 } [
-       "((lambda (x) (if x (begin (+ 1 2)) (- 3 5))) #t)" lisp-eval
+    { { 1 2 3 4 5 } } [
+        "(list 1 2 3 4 5)" lisp-eval list>seq
     ] unit-test
     
+    { { 1 2 { 3 { 4 } 5 } } } [
+        "(list 1 2 (list 3 (list 4) 5))" lisp-eval cons>seq
+    ] unit-test
+    
+    { T{ lisp-symbol f "if" } } [
+        "(defmacro if (pred tr fl) (list (quote cond) (list (list pred tr) (list t fl))))" lisp-eval
+    ] unit-test
+    
+    { t } [
+        T{ lisp-symbol f "if" } lisp-macro?
+    ] unit-test
+    
+!     { 1 } [
+!       "(if #t 1 2)" lisp-eval
+!     ] unit-test
+    
+!     { 3 } [
+!        "((lambda (x) (if x (begin (+ 1 2)) (- 3 5))) #t)" lisp-eval
+!     ] unit-test
+    
 ] with-interactive-vocabs

    "+" "math" "+" define-primitive
    "-" "math" "-" define-primitive
    
    { 5 } [
      [ 2 3 ] "+" <lisp-symbol> funcall
    ] unit-test
    
    { 8.3 } [
     [ 10.4 2.1 ] "-" <lisp-symbol> funcall
    ] unit-test
    
    { 3 } [

! Copyright (C) 2008 James Cash
! See http://factorcode.org/license.txt for BSD license.
USING: lisp lisp.parser tools.test sequences math kernel parser arrays lists
quotations ;

IN: lisp.test

