llist

added

ns
clojure.core.logic

type
macro

(llist f s) (llist f s & rest)

Constructs a sequence from 2 or more arguments, with the last argument as the
tail. The tail is improper if the last argument is a logic variable.

                (run* [q]
  (fresh [a d]
    (== [1 2 3 4] (llist a d))
    (== q d))) ;; ((2 3 4))

(run* [q]
  (fresh [a d r]
    (== [1 2 3 4] (llist a d r))
    (== q r))) ;; a=1, d=2, r=(3 4)