yaotti's diary

Software is Eating the World

世界のナベアツ的なもの

3の倍数と3が含まれる数のときだけpiyopiyoする。

(use srfi-1)
(define (contain-tree? num)
  (find (cut eq? #\3 <>) (string->list (number->string num))))

(define (nabeatsu n)
  (map (lambda (x) (if (or (= (modulo x 3) 0) (contain-tree? x))
		       'piyopiyo
		       x))
       (iota n 1)))
gosh> (nabeatsu 100)
(1 2 piyopiyo 4 5 piyopiyo 7 8 piyopiyo 10 11 piyopiyo piyopiyo 14 piyopiyo 16 17 piyopiyo 19 20 piyopiyo 22 piyopiyo piyopiyo 25 26 piyopiyo 28 29 piyopiyo piyopiyo piyopiyo piyopiyo piyopiyo piyopiyo piyopiyo piyopiyo piyopiyo piyopiyo 40 41 piyopiyo piyopiyo 44 piyopiyo 46 47 piyopiyo 49 50 piyopiyo 52 piyopiyo piyopiyo 55 56 piyopiyo 58 59 piyopiyo 61 62 piyopiyo 64 65 piyopiyo 67 68 piyopiyo 70 71 piyopiyo piyopiyo 74 piyopiyo 76 77 piyopiyo 79 80 piyopiyo 82 piyopiyo piyopiyo 85 86 piyopiyo 88 89 piyopiyo 91 92 piyopiyo 94 95 piyopiyo 97 98 piyopiyo 100)

(string->list (number->string num))が不自然な気がするけど、これ以外やり方思いつかない。
piyopiyo!!