From 9b964acdb0cc36d09193861b8f7d33aea248ee46 Mon Sep 17 00:00:00 2001 From: Jedidiah Barber Date: Thu, 29 Jan 2026 22:12:41 +1300 Subject: Some equivalent test programs in Scheme running on microKanren and miniKanren for benchmark comparisons --- scheme/houses.scm | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 scheme/houses.scm (limited to 'scheme/houses.scm') diff --git a/scheme/houses.scm b/scheme/houses.scm new file mode 100644 index 0000000..8178bf5 --- /dev/null +++ b/scheme/houses.scm @@ -0,0 +1,84 @@ + +; Equivalent to example/houses.adb + + +(define (value bin) + (cond + ((null? bin) 0) + ((zero? (car bin)) (* 2 (value (cdr bin)))) + (#t (+ 1 (* 2 (value (cdr bin))))))) + + +(define (do-unique x li) + (fresh (h t) + (caro li h) + (cdro li t) + (conde + ((string (value (list-ref r 0))))) (newline) + (display (string-append "Adrienne: " (number->string (value (list-ref r 1))))) (newline) + (display (string-append "Belinda: " (number->string (value (list-ref r 2))))) (newline) + (display (string-append "Benito: " (number->string (value (list-ref r 3))))) (newline) + (display (string-append "Cheri: " (number->string (value (list-ref r 4))))) (newline) + (display (string-append "Crawford: " (number->string (value (list-ref r 5))))) (newline) + (display (string-append "Daryl: " (number->string (value (list-ref r 6))))) (newline) + (display (string-append "Don: " (number->string (value (list-ref r 7))))) (newline)))) + + -- cgit