side = ['side: ' + self.get_function(x) for x in graph.outputs if x != rule.anf.result and x != rule.anf.head]
return [('%s %s' % (red % rule.anf.agg, self.values(rule.anf.result))),
(green % ('# %s' % src)),
- (green % ('# %s' % subst(src, user_vars))),
- (green % ('# %s' % drepr(user_vars))),
+ (green % ('# %s where %s' % (subst(src, user_vars), drepr(user_vars)))),
('head: %s' % self.get_function(rule.anf.head)),
('result: %s' % self.get_function(rule.anf.result))] \
+ side
+# -*- coding: utf-8 -*-
+
"""
TODO: unsubscribe
# drop $out chart
del self.interp.chart['$out/1']
-
def do_vquery(self, q):
"""
See query.
print 'No results.'
return
for val, bindings in results:
- print ' ', _repr(val), 'when', drepr(dict(bindings))
+ #if not bindings:
+ # print ' ', _repr(val)
+ print ' ', _repr(val), 'where', drepr(dict(bindings))
print
def do_query(self, q):
- `vquery` shows variable bindings
:- vquery f(X)
- 1 when {X=1}
- 4 when {X=1}
+ 1 where {X=1}
+ 4 where {X=1}
- `query` shows variable bindings applied to query
:- query f(X)
- 1 is f(1)
- 4 is f(2)
+ 1 ← f(1)
+ 4 ← f(2)
"""
results = self._query(q)
print 'No results.'
return
for term, result in sorted((subst(q, dict(result.variables)), result) for result in results):
- print ' ', _repr(result.value), 'is', term
+ print ' ', _repr(result.value), '←', term
print
def default(self, line, show_changed=True):
if x.value:
print '%s: %s' % (i, q)
for result in x.value:
- print ' ', _repr(result.value), 'when', drepr(dict(result.variables))
+ print ' ', _repr(result.value), 'where', drepr(dict(result.variables))
print
self.interp.dump_errors()
Changes
=======
f(X,X):
- 1 when {X=1}
+ 1 where {X=1}
To view all subscriptions:
:- subscriptions
f(X):
- 1 when {X=1}
- 2 when {X=2}
+ 1 where {X=1}
+ 2 where {X=2}
"""
if line.endswith('.'):
if results:
print q
for result in results:
- print ' ', _repr(result.value), 'when', drepr(dict(result.variables))
+ print ' ', _repr(result.value), 'where', drepr(dict(result.variables))
print
def do_help(self, line):