Welcome to the CHICKEN Scheme pasting service

mini-kanren magic pasted by saeftl on Wed Nov 13 13:16:11 2013

(use mini-kanren)
(define distinct
  (lambda ( x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25)
    (let ([xs (list x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25) ])
      (all
       (membero 1 xs) (membero 2 xs) (membero 3 xs) (membero 4 xs) (membero 5 xs) (membero 6 xs) (membero 7 xs)
       (membero 8 xs) (membero 9 xs) (membero 10 xs) (membero 11 xs) (membero 12 xs)
       (membero 13 xs) (membero 14 xs) (membero 15 xs) (membero 16 xs) (membero 17 xs)
       (membero 18 xs) (membero 19 xs) (membero 20 xs) (membero 21 xs) (membero 22 xs)
       (membero 23 xs) (membero 24 xs) (membero 25 xs))))) 

(define sumo
	(lambda (x1 x2 x3 x4 x5)
		(fresh (s1 s2 s3 s4 s5)
		(+o x1 x2 s1)
		(+o x2 s1 s2)
		(+o x3 s2 s3)
		(+o x4 s3 s4)
		(+o x5 s4 (build-num 65)))))

(run 2 (b)
      (fresh (   x1 x2 x3 x4 x5
                 x6 x7 x8 x9 x10 
                 x11 x12 x13 x14 x15
                 x16 x17 x18 x19 x20
                 x21 x22 x23 x24 x25)
            (alli
             ; the board consists of fields fields
             (== b (list (list x1  x2  x3  x4  x5)
                         (list x6  x7  x8  x9  x10)
                         (list x11 x12 x13 x14 x15)
                         (list x16 x17 x18 x19 x20)
                         (list x21 x22 x23 x24 x25)))
            (distinct  x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25)
			(sumo x1  x2  x3  x4  x5)
             (sumo x6  x7  x8  x9  x10)
             (sumo x11 x12 x13 x14 x15)
             (sumo x16 x17 x18 x19 x20)
             (sumo x21 x22 x23 x24 x25)
			(sumo x1 x6  x11 x16 x21)
             (sumo x2 x7  x12 x17 x22)
             (sumo x3 x8  x13 x18 x23)
             (sumo x4 x9  x14 x19 x24) 
             (sumo x5 x10 x15 x20 x25))))

jetzt richtig added by saeftl on Thu Nov 14 00:26:58 2013

(use mini-kanren)

(define distinct
  (lambda          (x1 x2 x3 x4 x5 x6 x7 x8 x9)
    (let ((xs (list x1 x2 x3 x4 x5 x6 x7 x8 x9)))
      (all (membero (build-num 1) xs)
           (membero (build-num 2) xs)
           (membero (build-num 3) xs)
           (membero (build-num 4) xs)
           (membero (build-num 5) xs)
           (membero (build-num 6) xs)
           (membero (build-num 7) xs)
           (membero (build-num 8) xs)
           (membero (build-num 9) xs)))))

(define sumo
  (lambda (x1 x2 x3)
    (fresh (s) (+o x1 x2 s) (+o x3 s (build-num 15)))))

(print (run*
            (b)
            (fresh (x1 x2 x3 x4 x5 x6 x7 x8 x9)
                    (alli (== b
                             (list (list x1 x2 x3)
                                   (list x4 x5 x6)
                                   (list x7 x8 x9)))
                         (distinct x1 x2 x3 x4 x5 x6 x7 x8 x9)
						 (== x1  (build-num 8))
						 ;(== x2  (build-num 1))
						 ;(== x3  (build-num 6))
						 ;(== x4  (build-num 3))
						 ;(== x5  (build-num 5))
						 ;(== x6  (build-num 7))
						 ;(== x7  (build-num 4))
						 ;(== x8  (build-num 9))
						 ;(== x9  (build-num 2))
                         (sumo x1 x2 x3)
                         (sumo x4 x5 x6)
                         (sumo x7 x8 x9)
                         (sumo x1 x4 x7)
                         (sumo x2 x5 x8)
                         (sumo x3 x6 x9)
						 ))))


Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
What's the procedure that returns the cdr of a car?
Visually impaired? Let me spell it for you (wav file) download WAV