TA

先学期の某Scheme授業のテストで、

(maximum (list 1 2 3 4 5)) => 5

とかなる関数を作れという問題を出したら、みんな素直に再帰使ってがんばって書いていてちょっとがっくり。*1

(define (maximum xs)
  (apply max xs))

と書けるのはさすがに期待してなかったけど。fold-rightぐらい使って欲しかった。

(define (maximum xs)
  (fold-right max (car xs) (cdr xs))

*1:採点は自動でやってるので、ぱらぱらとしか見てませんが