In chapter 1, part 54 I don't understand why the return value is ((split pea) (navy bean)). CONDE returns that but the return value is r unified with (list x y) and it appears the book is trying to say
;; Beware, I speak scheme with a Common Lisp accent
(fresh (x y)
;; -> ((split pea) (navy bean))
((== 'split x) (== 'pea y))
;; -> (split pea)
((== 'navy x) (== 'bean y))
;; -> (navy bean)
;; I discarded those bindings, right?
(== (list x y) r)))
I'm reading this book so I can understand better how to do logic programming and because it'd be good to learn some scheme along the way as well.