Author: Juergen Boemmels <boemm...@web.de>
Branch: 
Changeset: r32:2f84a6d52477
Date: 2011-12-29 22:05 +0100
http://bitbucket.org/pypy/lang-scheme/changeset/2f84a6d52477/

Log:    Implement not function

diff --git a/scheme/procedure.py b/scheme/procedure.py
--- a/scheme/procedure.py
+++ b/scheme/procedure.py
@@ -3,7 +3,7 @@
         W_Number, W_Real, W_Integer, W_List, W_Character, W_Vector, \
         Body, W_Procedure, W_String, W_Promise, plst2lst, w_undefined, \
         SchemeSyntaxError, SchemeQuit, WrongArgType, WrongArgsNumber, \
-        w_nil
+        w_nil, w_true, w_false
 
 ##
 # operations
@@ -534,6 +534,19 @@
     def predicate(self, w_obj):
         return w_obj is w_nil
 
+class Not(W_Procedure):
+    _symbol_name = "not"
+
+    def procedure(self, ctx, lst):
+        if len(lst) != 1:
+            raise WrongArgsNumber
+
+        w_bool = lst[0]
+        if w_bool.to_boolean():
+            return w_false
+        else:
+            return w_true
+
 
 ##
 # Input/Output procedures
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to