; maximum product
(define (max-prod xs ys zs)
(let ((min-x (apply min xs)) (max-x (apply max xs))
(min-y (apply min ys)) (max-y (apply max ys))
(min-z (apply min zs)) (max-z (apply max zs)))
(max (* max-x max-y max-z)
(* max-x min-y min-z)
(* min-x max-y min-z)
(* min-x min-y max-z))))
(display (max-prod '(10 -10 15 -12) '(10 -12 13 -12) '(-11 -10 9 -12)))
OyBtYXhpbXVtIHByb2R1Y3QKCihkZWZpbmUgKG1heC1wcm9kIHhzIHlzIHpzKQogIChsZXQgKChtaW4teCAoYXBwbHkgbWluIHhzKSkgKG1heC14IChhcHBseSBtYXggeHMpKQogICAgICAgIChtaW4teSAoYXBwbHkgbWluIHlzKSkgKG1heC15IChhcHBseSBtYXggeXMpKQogICAgICAgIChtaW4teiAoYXBwbHkgbWluIHpzKSkgKG1heC16IChhcHBseSBtYXggenMpKSkKICAgIChtYXggKCogbWF4LXggbWF4LXkgbWF4LXopCiAgICAgICAgICgqIG1heC14IG1pbi15IG1pbi16KQogICAgICAgICAoKiBtaW4teCBtYXgteSBtaW4teikKICAgICAgICAgKCogbWluLXggbWluLXkgbWF4LXopKSkpCgooZGlzcGxheSAobWF4LXByb2QgJygxMCAtMTAgMTUgLTEyKSAnKDEwIC0xMiAxMyAtMTIpICcoLTExIC0xMCA5IC0xMikpKQ==