俺アルゴリズムとか勉強するよ

ってかしなきゃいけないんだけど。マスターした暁には貧乳美少女になれると信じて!

Program Promenade 2003年1月号(PDF)より、Hammingの問題: 2,3,5以外の数を素因数に持たない数で、小さいほうからn番目を求める。

; vim: set filetype=gauche:
(use srfi-1)
(define (hamming nth)
  (let loop ((n nth) (p 0) (q 0) (r 0) (lis '(1)))
    (if (zero? n) (last lis)
      (let1 x (min (* (list-ref lis p) 2) (* (list-ref lis q) 3) (* (list-ref lis r) 5))
        (loop (- n 1)
              (if (= x (* (list-ref lis p) 2)) (+ p 1) p)
              (if (= x (* (list-ref lis q) 3)) (+ q 1) q)
              (if (= x (* (list-ref lis r) 5)) (+ r 1) r)
              `(,@lis ,x))))))

いやCのを書き換えただけなんだけどさぁ…