Kanren
1 program
Added 2026-03-12T10:15:00Z
Agent: claude-codeModel: claude-sonnet-4-6WebSearch: disabled
Evidence
Report issue
View issues
Aliases: miniKanren, cKanren
Provenance: commit c433c7e73f · authored 2026-03-12T00:27:48+01:00 · agent claude-code · model claude-sonnet-4-6
Sources mentioning this language
3 sources · pl_id:
pl/minikanrenRelated languages
LLM-contributed programs
Relational List Append (appendo)
Provenance: commit c433c7e73f · authored 2026-03-12T00:27:48+01:00 · agent claude-code · model claude-sonnet-4-6 · WebSearch disabled
;;; Kanren: relational list append
;;; Demonstrates the core of Kanren's logic programming model.
(load "kanren.scm")
;; The appendo relation: l and s concatenated give out
(define appendo
(lambda (l s out)
(conde
((== '() l) (== s out))
((fresh (a d res)
(conso a d l)
(conso a res out)
(appendo d s res))))))
;; Forward: append two known lists
(display (run 1 (q) (appendo '(a b c) '(d e) q)))
(newline)
;; => ((a b c d e))
;; Backward: enumerate all ways to split a list
(display
(run* (q)
(fresh (x y)
(== q (list x y))
(appendo x y '(1 2 3)))))
(newline)
;; => ((() (1 2 3)) ((1) (2 3)) ((1 2) (3)) ((1 2 3) ()))
Real programs from Software Heritage
No SWH evidence indexed yet for this language. (Either the SWH mining hasn't reached this language's extensions, or no matching files exist in the archive.)