summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/hosting/server/util.py
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2013-01-03 07:41:53 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2013-01-03 07:41:53 +0000
commitd7069b5a2e7859ab14c5a909d5e5fc6bc84b80cb (patch)
treed8027520fb22c176f54e860c0d2ebd000b1c457f /sca-cpp/trunk/hosting/server/util.py
parent9e1b9e73145e00ea591bd1e0e9777625bad66dc9 (diff)
Improve app hosting management app, restructure UI and refactor REST services and data model to use an SQL database.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1428193 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/hosting/server/util.py')
-rw-r--r--sca-cpp/trunk/hosting/server/util.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/sca-cpp/trunk/hosting/server/util.py b/sca-cpp/trunk/hosting/server/util.py
index 24467fd2cb..791951a71c 100644
--- a/sca-cpp/trunk/hosting/server/util.py
+++ b/sca-cpp/trunk/hosting/server/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] == "'"
@@ -131,12 +131,25 @@ def cons_stream(car, cdr):
# Scheme-like associations
def assoc(k, l):
if l == ():
- return None
-
+ return ()
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 substAssoc(k, n, l, a = False):
+ if l == ():
+ return (n,) if a else ()
+ if k == car(car(l)):
+ return cons(n, substAssoc(k, n, cdr(l), False))
+ return cons(car(l), substAssoc(k, n, cdr(l), a))
+
# Currying / partial function application
def curry(f, *args):
return lambda *a: f(*(args + a))