プログラミングのお題スレ Part3
■ このスレッドは過去ログ倉庫に格納されています
0236デフォルトの名無しさん
2014/02/22(土) 17:23:58.73| trait |
trait := Trait named: #FizzBuzz uses: #() category: 'FizzBuzz-Traits'.
trait compile: 'fizzBuzz: spec
| assoc |
(self isKindOf: Integer) ifTrue: [Processor activeProcess environmentAt: #fizzBuzz put: self->''''].
assoc := Processor activeProcess environmentAt: #fizzBuzz.
^(assoc key isDivisibleBy: spec key)
ifTrue: [assoc value: assoc value, spec value; value]
ifFalse: [assoc value ifEmpty: [assoc key]]'.
trait compile: 'fizz ^self fizzBuzz: 3->''Fizz'''.
trait compile: 'buzz ^self fizzBuzz: 5->''Buzz'''.
trait compile: 'gizz ^self fizzBuzz: 7->''Gizz'''.
{Integer. String} do: [:class | class uses: trait].
1 fizz buzz. "=> 1 "
3 fizz buzz. "=> 'Fizz' "
5 fizz buzz. "=> 'Buzz' "
15 fizz buzz. "=> 'FizzBuzz' "
7 fizz buzz gizz. "=> 'Gizz' "
21 fizz buzz gizz. "=> 'FizzGizz' "
35 fizz buzz gizz. "=> 'BuzzGizz' "
105 fizz buzz gizz. "=> 'FizzBuzzGizz' "
105 fizz gizz buzz. "=> 'FizzGizzBuzz' "
■ このスレッドは過去ログ倉庫に格納されています