(define determ (cadr (cddddr ((fileVal "Matrix") '() 0 zero? 1 + - * /)))) (define rr ((fileVal "rr") "Seed")) ; random rational (define (rp n) (let ((pv (let N ((n n)) (if (= n 0) (list (rr)) (cons (rr) (N (- n 1))))))) (lambda (x) (let v ((p pv)) (if (null? p) 0 (+ (car p) (* x (v (cdr p))))))))) ; random polynomial of degree n (define (el n x y) (let M ((v '(1)) (n n)) (if (= n 0) v (append (M (let L ((p v) (lt 1)) (if (null? p) (cons lt p) (cons (* x (car p)) (L (cdr p) (* y lt))))) (- n 1)) v)))) ; (el 3 x y) = (list xxx xxy xyy yyy xx xy yy x y 1) (define (mat n) (map (lambda (p) (el n (car p)(cdr p))) (let ((xp (rp n))(yp (rp n))(n (/ (* (+ n 1)(+ n 2)) 2))) (let R ((n n)) (if (= n 0) () (cons (let ((t (rr)))(cons (xp t)(yp t))) (R (- n 1)))))))) (determ (mat 3)) ; => 0 ; 1 thru 7 likewise