Factorに入門する(その他) はじめてのFizzBuzz
素直にFizzBuzzを書いてみました。
IN: fizzbuzz USING: kernel io math prettyprint sequences ; : fizzBuzz ( -- ) "FizzBuzz" print ; : fizz ( -- ) "Fizz" print ; : buzz ( -- ) "Buzz" print ; : modN? ( x n -- ? ) mod 0 = ; : fizzBuzzMain ( array -- ) dup 15 modN? [ drop fizzBuzz ] [ dup 3 modN? [ drop fizz ] [ dup 5 modN? [ drop buzz ] [ . ] if ] if ] if ; 100 [ 1 + fizzBuzzMain ] each
かっこわるい。xがnで割り切れるならstrをスタックに置く、みたいなwordが書ければよいんだけど、手持ちの語彙でシンプルに書くことができません。まだまだFactor使いの初歩にもいっていないなわたし。