Author: Juergen Boemmels <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit