1234567891011121314151617181920212223242526 |
- #!/usr/bin/ruby
- #
- ## https://rosettacode.org/wiki/General_FizzBuzz
- #
- class FizzBuzz(schema=Hash.new(<3 Fizz 5 Buzz>...)) {
- method filter(this) {
- var fb = '';
- schema.sort_by {|k,_| k.to_i }.each { |pair|
- fb += (this %% pair[0].to_n ? pair[1] : '');
- }
- fb.len > 0 ? fb : this;
- }
- }
- func GeneralFizzBuzz(upto, schema) {
- var ping = FizzBuzz();
- defined(schema) && (
- ping.schema = schema.to_hash;
- );
- upto.of {|i| ping.filter(i+1) };
- }
- GeneralFizzBuzz(20, <3 Fizz 5 Buzz 7 Baxx>).each { .say };
|