[pypy-commit] lang-scheme default: Added a bush of TypePredicates
boemmels
noreply at buildbot.pypy.org
Mon Nov 28 00:38:30 CET 2011
Author: Juergen Boemmels <boemmels at web.de>
Branch:
Changeset: r18:85cd07336233
Date: 2011-11-27 19:20 +0100
http://bitbucket.org/pypy/lang-scheme/changeset/85cd07336233/
Log: Added a bush of TypePredicates
diff --git a/scheme/procedure.py b/scheme/procedure.py
--- a/scheme/procedure.py
+++ b/scheme/procedure.py
@@ -1,8 +1,9 @@
import py
from scheme.object import W_Root, W_Boolean, W_Pair, W_Symbol, \
- W_Number, W_Real, W_Integer, W_List, \
+ W_Number, W_Real, W_Integer, W_List, W_Character, W_Vector, \
Body, W_Procedure, W_Promise, plst2lst, w_undefined, \
- SchemeSyntaxError, SchemeQuit, WrongArgType, WrongArgsNumber
+ SchemeSyntaxError, SchemeQuit, WrongArgType, WrongArgsNumber, \
+ w_nil
##
# operations
@@ -342,6 +343,12 @@
def predicate(self, w_obj):
return isinstance(w_obj, W_Symbol)
+class StringP(TypePredicate):
+ _symbol_name = "string?"
+
+ def predicate(self, w_obj):
+ return isinstance(w_obj, W_String)
+
class PairP(TypePredicate):
_symbol_name = "pair?"
@@ -354,6 +361,24 @@
def predicate(self, w_obj):
return isinstance(w_obj, W_Procedure)
+class CharP(TypePredicate):
+ _symbol_name = "char?"
+
+ def predicate(self, w_obj):
+ return isinstance(w_obj, W_Character)
+
+class VectorP(TypePredicate):
+ _symbol_name = "vector?"
+
+ def predicate(self, w_obj):
+ return isinstance(w_obj, W_Vector)
+
+class NullP(TypePredicate):
+ _symbol_name = "null?"
+
+ def predicate(self, w_obj):
+ return w_obj is w_nil
+
##
# Input/Output procedures
##
More information about the pypy-commit
mailing list