summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/modules/wsgi/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'sca-cpp/trunk/modules/wsgi/util.py')
-rw-r--r--sca-cpp/trunk/modules/wsgi/util.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/sca-cpp/trunk/modules/wsgi/util.py b/sca-cpp/trunk/modules/wsgi/util.py
index 24467fd2cb..f630455901 100644
--- a/sca-cpp/trunk/modules/wsgi/util.py
+++ b/sca-cpp/trunk/modules/wsgi/util.py
@@ -60,7 +60,7 @@ def reverse(l):
def isNil(l):
if isinstance(l, streampair):
return l.isNil()
- return l == ()
+ return l is None or l == ()
def isSymbol(v):
return isinstance(v, basestring) and v[0:1] == "'"
@@ -132,11 +132,24 @@ def cons_stream(car, cdr):
def assoc(k, l):
if l == ():
return None
-
if k == car(car(l)):
return car(l)
return assoc(k, cdr(l))
+def delAssoc(k, l):
+ if l == ():
+ return ()
+ if k == car(car(l)):
+ return delAssoc(k, cdr(l))
+ return cons(car(l), delAssoc(k, cdr(l)))
+
+def putAssoc(a, l):
+ if l == ():
+ return (a,)
+ if car(a) == car(car(l)):
+ return cons(a, cdr(l))
+ return cons(car(l), putAssoc(a, cdr(l)))
+
# Currying / partial function application
def curry(f, *args):
return lambda *a: f(*(args + a))