http://chaton.practical-scheme.net/gauche/a/2012/08/09 http://ideone.com/JOdYf この方針では以前も書いたような気がしますが、Squeak Smalltalk で無理なく書くとこんな感じになりますか。 | fizz buzz | fizz := [:n | #('' '' 'Fizz') atWrap: n]. buzz := [:n | #('' '' '' '' 'Buzz') atWrap: n]. (1 to: 100) collect: [:n | (fizz value: n), (buzz value: n) ifEmpty: [n]] 無限列(循環列)とかかっこいい機構はないうえに、Smalltalk は多くの言語にはある fun(n) という関数コールのための構文を持たないため、value: n