Swirrl / matcha

:tea: An in memory graph database with SPARQL-like DSL for querying Linked Data Models
Eclipse Public License 1.0
21 stars 0 forks source link

Cannot construct a bound symbol #20

Open RickMoynihan opened 4 years ago

RickMoynihan commented 4 years ago

e.g. the following should be allowed:

(let [foo :a] (matcha/construct foo [[foo ?bar ?baz]]))

It should return :a if it exists as a resource in the database, otherwise nil.

However it raises a syntax error:

Syntax error macroexpanding clojure.core/let at (*cider-repl repos/muttnik:localhost:50215(clj)*:1010:45).
nil - failed: simple-symbol? at: [:bindings :form :local-symbol] spec: :clojure.core.specs.alpha/local-name
nil - failed: vector? at: [:bindings :form :seq-destructure] spec: :clojure.core.specs.alpha/seq-binding-form
nil - failed: map? at: [:bindings :form :map-destructure] spec: :clojure.core.specs.alpha/map-bindings
nil - failed: map? at: [:bindings :form :map-destructure] spec: :clojure.core.specs.alpha/map-special-binding
RickMoynihan commented 4 years ago

Note a workaround for this is:

(let [foo :a] (when (matcha/ask [[foo ?bar ?baz]] matcha-db) foo)