Skip to content

Computing path lengths #1

@remysucre

Description

@remysucre

Hi, I'm attempting to run the following program:

path(Start,End,W) :- edge(Start,End,W).
path(Start,End,U+V) :- path(Start,Mid,U), edge(Mid,End,V).

edge(1, 2, 3).
edge(2, 3, 1).
edge(1, 3, 2).

After loading the program in the dyna repl and querying for path(X,Y,W), I see the correct results printed but also the following error:

(dyna) ~/datalog-sys/dyna-R dyna
$> load demo.dyna
$> path(X, Y, W)
user query: path(X, Y, W)
result: {'X': 1, 'Y': 2, 'W': 3, 'Result': True} @ ('Terminal', 1)
result: {'X': 1, 'Y': 3, 'W': 2, 'Result': True} @ ('Terminal', 1)
result: {'X': 1, 'Y': 3, 'W': 4, 'Result': True} @ ('Terminal', 1)
result: {'X': 2, 'Y': 3, 'W': 1, 'Result': True} @ ('Terminal', 1)
Traceback (most recent call last):
  File "/home/remywang/datalog-sys/dyna-R/dyna/repl.py", line 528, in cmdloop
    user_query(text)
  File "/home/remywang/datalog-sys/dyna-R/dyna/syntax/normalizer.py", line 261, in user_query
    loop(rr,
  File "/home/remywang/datalog-sys/dyna-R/dyna/interpreter.py", line 645, in loop
    loop_partition(R, frame, cb, partition)
  File "/home/remywang/datalog-sys/dyna-R/dyna/interpreter.py", line 585, in loop_partition
    for bd in partition.run(frame):
  File "/home/remywang/datalog-sys/dyna-R/dyna/interpreter.py", line 421, in run
    if self.iterators[j].bind_iterator(frame, self.variable, vv):
  File "/home/remywang/datalog-sys/dyna-R/dyna/interpreter.py", line 408, in bind_iterator
    return any(v.bind_iterator(self.variable, value) for v in self.iterators)
  File "/home/remywang/datalog-sys/dyna-R/dyna/interpreter.py", line 408, in <genexpr>
    return any(v.bind_iterator(self.variable, value) for v in self.iterators)
TypeError: bind_iterator() missing 1 required positional argument: 'value'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions