problem 6

1 から 100 までの数に対して和の平方と平方の和の差を求めるという問題。楽勝。

(use srfi-1)

(define (p6)
  (let ((list100 (list-tabulate 100 (lambda (i) (+ i 1))))
        (square (lambda (x) (* x x)))
        (sum (lambda (x) (fold + 0 x))))
    (- (square (sum list100))
       (sum (map square list100)))))

(print (p6))

わかったこと

  • リストに対する操作のライブラリは srfi-1 というモジュールにある。
  • map と fold の使い方