problem 8
連続する 5 つの数字の積のなかから最大のモノを見つける問題です。
(define digit1000 (map digit->integer (string->list "731671765313306249192...."))) (define (p8 digit1000) (apply max (map * digit1000 (cdr digit1000) (cddr digit1000) (cdddr digit1000) (cddddr digit1000)))) (display (p8 digit1000))
初めは apply せずに
(max (map * ...)
と書いていたらエラーがでました。一瞬なぜエラーがでるのか分からなかったが max の引数はリストじゃないことに気づいて、さらに d:id:mtsuyugu:20080610:213107207 でやったことを思い出し apply を付けるように修正しました。
↑本当は個別記事に TB したいんだけど id TB ではできないの?できました。
初めて apply の使いどころに出くわした気がします。