そんな、札幌に来て Java の無名インナークラスについて教えてくれたバスケさんですが…

5年問題 に取り組む代わりに、こんな問題をくれました。

1 → 1 1 → 1 2 → 1 1 2 1 → 1 2 2 1 1 1 → 1 1 2 2 1 3 → 1 2 2 2 1 1 3 1 → 1 1 2 3 1 2 3 1 1 1 のとき、次はどんな数列になるしょう。

SqueakSmalltalk で書くと、こんな感じ(ネタバレ注意)。

| prevArray |
prevArray _ #(1).
^ Array streamContents: [: s |
 ((RunArray newFrom: prevArray)
  runsAndValuesDo: [: r : v | s nextPut: v; nextPut: r])]