Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Recursive rules fail in new version of posh #23

@Conaws

Description

@Conaws

This worked in posh 3.5

(def prereqs-rule
  '[[(prereqs ?e ?p)
     [?e :node/prereqs ?p]]
    [(prereqs ?e ?p)
     [?e :node/prereqs ?p1]
     (prereqs ?p1 ?p)]])

(posh/q conn '[:find [?p ...] 
                             :in $ % ?item
                             :where (prereqs ?item ?p)]
                prereqs-rule
                1)

In posh 5, the equivalent

(posh/q '[:find [?p ...] 
                             :in $ % ?item
                             :where (prereqs ?item ?p)]
                conn
                prereqs-rule
                1)

This produces an error of

#error {:message "Cannot parse rule-expr arguments, expected [ (variable | constant | '_')+ ]", :data {:error :parser/where, :form (prereqs $ ?p ?e ?var3284835)}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions