Author: Maciej Fijalkowski <fij...@gmail.com>
Branch: 
Changeset: r376:df788d5d8fff
Date: 2013-07-09 11:16 +0200
http://bitbucket.org/pypy/stmgc/changeset/df788d5d8fff/

Log:    implement cons

diff --git a/duhton/glob.c b/duhton/glob.c
--- a/duhton/glob.c
+++ b/duhton/glob.c
@@ -527,6 +527,14 @@
     return DuCons_Cdr(obj);
 }
 
+DuObject *du_cons(DuObject *cons, DuObject *locals)
+{
+    DuObject *obj1, *obj2;
+    _du_getargs2("cons", cons, locals, &obj1, &obj2);
+
+    return DuCons_New(obj1, obj2);
+}
+
 DuObject *du_not(DuObject *cons, DuObject *locals)
 {
     DuObject *obj;
@@ -627,6 +635,7 @@
     DuFrame_SetBuiltinMacro(Du_Globals, "defun", du_defun);
     DuFrame_SetBuiltinMacro(Du_Globals, "car", du_car);
     DuFrame_SetBuiltinMacro(Du_Globals, "cdr", du_cdr);
+       DuFrame_SetBuiltinMacro(Du_Globals, "cons", du_cons);
     DuFrame_SetBuiltinMacro(Du_Globals, "not", du_not);
     DuFrame_SetBuiltinMacro(Du_Globals, "transaction", du_transaction);
     DuFrame_SetBuiltinMacro(Du_Globals, "sleepms", du_sleepms);
diff --git a/duhton/test/test_cons.py b/duhton/test/test_cons.py
--- a/duhton/test/test_cons.py
+++ b/duhton/test/test_cons.py
@@ -5,6 +5,7 @@
     assert run("(print ())") == "None\n"
     assert run("(print None)") == "None\n"
     assert run("(print (quote (1 2 3)))") == "( 1 2 3 )\n"
+    assert run("(print (cons 1 2))") == "( 1 . 2 )\n"
 
 def test_car_cdr():
     assert run("(print (car (quote (2 3))))") == "2\n"
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to