fizzbuzz.factor
· 490 B · Factor
原始文件
Playground
USING: io kernel math math.functions math.parser ranges
sequences ;
IN: rosetta-code.fizz-buzz
PREDICATE: fizz < integer 3 divisor? ;
PREDICATE: buzz < integer 5 divisor? ;
INTERSECTION: fizzbuzz fizz buzz ;
GENERIC: fizzbuzz>string ( n -- str )
M: fizz fizzbuzz>string
drop "Fizz" ;
M: buzz fizzbuzz>string
drop "Buzz" ;
M: fizzbuzz fizzbuzz>string
drop "FizzBuzz" ;
M: integer fizzbuzz>string
number>string ;
MAIN: [ 1 100 [a..b] [ fizzbuzz>string print ] each ]
1 | USING: io kernel math math.functions math.parser ranges |
2 | sequences ; |
3 | IN: rosetta-code.fizz-buzz |
4 | |
5 | PREDICATE: fizz < integer 3 divisor? ; |
6 | PREDICATE: buzz < integer 5 divisor? ; |
7 | |
8 | INTERSECTION: fizzbuzz fizz buzz ; |
9 | |
10 | GENERIC: fizzbuzz>string ( n -- str ) |
11 | |
12 | M: fizz fizzbuzz>string |
13 | drop "Fizz" ; |
14 | |
15 | M: buzz fizzbuzz>string |
16 | drop "Buzz" ; |
17 | |
18 | M: fizzbuzz fizzbuzz>string |
19 | drop "FizzBuzz" ; |
20 | |
21 | M: integer fizzbuzz>string |
22 | number>string ; |
23 | |
24 | MAIN: [ 1 100 [a..b] [ fizzbuzz>string print ] each ] |