Fizz-Buzz問題(Scheme版)
巷で「Fizz-Buzz問題」が流行っているみたいなので、私も解いてみました。
ただし、3分以上かかってしまいましたが...。
(define (fizz-buzz) (letrec ((loop (lambda (n result) (if (< n 1) result (cond ((= (remainder n 15) 0) (loop (- n 1) (cons "FizzBuzz" result))) ((= (remainder n 3) 0) (loop (- n 1) (cons "Fizz" result))) ((= (remainder n 5) 0) (loop (- n 1) (cons "Buzz" result))) (else (loop (- n 1) (cons (number->string n) result)))))))) (loop 100 '()))) (define (main args) (display (string-join (fizz-buzz))) (display "\n"))