>>509 Squeak Smalltalk だけどなんとか >>547 っぽい方法で

| FizzBuzzQuiz |
FizzBuzzQuiz := Trait named: #FizzBuzzQuiz uses: #() category: 'FizzBuzz-Quiz'.
FizzBuzzQuiz compile: 'isDivisibleBy: m
  ^(Processor activeProcess environmentAt: #fbValue) isDivisibleBy: m'.
FizzBuzzQuiz compile: ', str Processor activeProcess environmentAt: #fbValue put: self. ^str'.

FizzBuzzQuiz compile: 'fizz ^(self isDivisibleBy: 3) ifTrue: [self, ''Fizz''] ifFalse: [self]'.
FizzBuzzQuiz compile: 'buzz ^(self isDivisibleBy: 5) ifTrue: [self, ''Buzz''] ifFalse: [self]'.

{Number. String} do: [:each | each uses: FizzBuzzQuiz].

1 fizz buzz. "=> 1 "
3 fizz buzz. "=> 'Fizz' "
5 fizz buzz. "=> 'Buzz' "
15 fizz buzz. "=> 'FizzBuzz' "
14 fizz buzz. "=> 14 "

FizzBuzzQuiz compile: 'gizz ^(self isDivisibleBy: 7) ifTrue: [self, ''Gizz''] ifFalse: [self]'.

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' "