Completed up to 2.37
This commit is contained in:
parent
73c2860a36
commit
478ae538a9
|
@ -0,0 +1,28 @@
|
||||||
|
(define (accumulate op initial sequence)
|
||||||
|
(if (null? sequence)
|
||||||
|
initial
|
||||||
|
(op (car sequence)
|
||||||
|
(accumulate op initial (cdr sequence)))))
|
||||||
|
|
||||||
|
(define (accumulate-n op init seqs)
|
||||||
|
(if (null? (car seqs))
|
||||||
|
'()
|
||||||
|
(cons (accumulate op init (map car seqs))
|
||||||
|
(accumulate-n op init (map cdr seqs)))))
|
||||||
|
|
||||||
|
(define (dot-product v w)
|
||||||
|
(accumulate + 0 (map * v w)))
|
||||||
|
|
||||||
|
(define (matrix-*-vector m v)
|
||||||
|
(map (lambda (row) (dot-product row v)) m))
|
||||||
|
|
||||||
|
(define (transpose m)
|
||||||
|
(accumulate-n cons '() m))
|
||||||
|
|
||||||
|
(define (matrix-*-matrix m n)
|
||||||
|
(let ((cols (transpose n)))
|
||||||
|
(map (lambda (row)
|
||||||
|
(map (lambda (col)
|
||||||
|
(dot-product row col))
|
||||||
|
cols))
|
||||||
|
m)))
|
Loading…
Reference in New Issue