; appendo for Kawa Scheme (load "mk-guile.scm") (define appendo (lambda (l s out) (conde ((== '() l) (== s out)) ((fresh (a d res) (== `(,a . ,d) l) (== `(,a . ,res) out) (appendo d s res)))))) ; (run* (q) (appendo '(a b c) '(d e) q)) ; (run* (q) (appendo q '(d e) '(a b c d e))) ; (run* (q) (appendo '(a b c) q '(a b c d e))) ; (run* (q) (fresh (l s) (appendo l s '(a b c)) (== `(,l ,s) q))) ; (run 5 (q) (fresh (l s out) (appendo l s out) (== `(,l ,s ,out) q)))