昨日のFizzBuzz のつづき。
再掲。
久しぶりに Io でコードを書いたら、すっかり作法を忘れてしまっていることに気がつきました。if 文の書き方、期待する動きになるように書けたはいいのだけれど、こんな書き方でよかったのか未だにこころもとない。
Number fizz := method( if(self % 3 == 0, result := "Fizz" result n := self result, self ) ) Number buzz := method( if(self % 5 == 0, result := "Buzz" result n := self result, self ) ) Sequence fizz := method( if(self n % 3 == 0, result := self .. "Fizz" result n := self n result, self ) ) Sequence buzz := method( if(self n % 5 == 0, result := self .. "Buzz" result n := self n result, self ) ) 1 fizz println 2 fizz println 3 fizz println 5 fizz println 9 fizz println 10 fizz println 12 fizz println 15 fizz println "---" println 1 buzz println 2 buzz println 3 buzz println 5 buzz println 9 buzz println 10 buzz println 12 buzz println 15 buzz println "---" println 1 fizz buzz println 2 fizz buzz println 3 fizz buzz println 5 fizz buzz println 9 fizz buzz println 10 fizz buzz println 12 fizz buzz println 15 fizz buzz println "---" println 1 buzz fizz println 2 buzz fizz println 3 buzz fizz println 5 buzz fizz println 9 buzz fizz println 10 buzz fizz println 12 buzz fizz println 15 buzz fizz println
実行。
$ io fizzbuzz.io 1 2 Fizz 5 Fizz 10 Fizz Fizz --- 1 2 3 Buzz 9 Buzz 12 Buzz --- 1 2 Fizz Buzz Fizz Buzz Fizz FizzBuzz --- 1 2 Fizz Buzz Fizz Buzz Fizz BuzzFizz
Ruby や Io でならば簡単に実現できるこの FizzBuzz。簡単に実現できるその特徴とは。
いつか読むはずっと読まない:へびつかい座

汝、コンピューターの夢 (〈八世界〉全短編1) (創元SF文庫)
- 作者: ジョン・ヴァーリイ,山岸真,大野万紀
- 出版社/メーカー: 東京創元社
- 発売日: 2015/10/11
- メディア: 文庫
- この商品を含むブログ (9件) を見る

さようなら、ロビンソン・クルーソー (〈八世界〉全短編2) (創元SF文庫)
- 作者: ジョン・ヴァーリイ,浅倉久志,大野万紀
- 出版社/メーカー: 東京創元社
- 発売日: 2016/02/21
- メディア: 文庫
- この商品を含むブログ (6件) を見る
読んで真っ先に思い出した作品がこれでした。
あるいはグレッグ・イーガン。
解説にも、 「アイデンティティを揺るがせ、人間の定義を変容させていく行為が日常化した〈八世界〉は、サイバーパンクやグレッグ・イーガン作品などの先駆に位置づけられるだろう」 とあり、ギミックは多少時代が感じられるものの、その物語は1970年代に書かれたとは思えない強烈さがあります。