すまん、13:00から勝手に始めてた。Problem 11ね。
(define prod
(lambda (table)
(let ((xmax (vector-length (vector-ref table 0)))
(ymax (vector-length table)))
(let ((lookup (lambda (x y)
(if (and (<= 0 x)
(< x xmax)
(<= 0 y)
(< y ymax))
(vector-ref (vector-ref table y) x)
0))))
(lambda (+x +y)
(lambda (x y)
(* (lookup (+ y (* +y 0)) (+ x (* +x 0)))
(lookup (+ y (* +y 1)) (+ x (* +x 1)))
(lookup (+ y (* +y 2)) (+ x (* +x 2)))
(lookup (+ y (* +y 3)) (+ x (* +x 3))))))))))
(define p011
(lambda (flist xlist ylist)
(apply max
(map (lambda (f)
(apply max
(map (lambda (y)
(apply max
(map (lambda (x)
(f x y))
xlist)))
ylist)))
flist))))