Matrix chain multiplication: Difference between revisions

Content added Content deleted
Line 952: Line 952:


== {{header|Racket}} ==
== {{header|Racket}} ==

'''Memoization'''


<lang racket>#lang racket
<lang racket>#lang racket
Line 978: Line 980:
#:combine (λ (left-answer right-answer _)
#:combine (λ (left-answer right-answer _)
(list left-answer '× right-answer)))))]))))
(list left-answer '× right-answer)))))]))))
(loop 0 (sub1 (vector-length dims))))
(loop 0 (sub1 (vector-length dims))))</lang>

'''Main'''


(define-syntax-rule (echo <x> ...)
<lang racket>(define-syntax-rule (echo <x> ...)
(begin (printf "~a: ~a\n" (~a (quote <x>) #:width 12) <x>) ...))
(begin (printf "~a: ~a\n" (~a (quote <x>) #:width 12) <x>) ...))