[SmallTalk R4.1チャレンジについて]
投稿日: Apr 01, 2009 3:10:32 PM
SmallTalkには、割といろいろな機能がまぜこぜに入っているので、ここでSmallTalk R4.1チャレンジを明確に定義したいと思います。
1. singletonチャレンジ
すべてのクラスで有効なsigletonメソッドを提供する。ただしsingletonが呼ばれたときに、シングルトンでなかった既存のインスタンスも、すべてシングルトンにそろえなければならない。
2. gotoチャレンジ
ラベルつきのgotoを実装する。ただし言語にあるものを使うのではなく、新たに作成しなければならない。
3. friendメソッドチャレンジ
あるクラスのあるメソッドからのみ呼ぶことを許可するfriendメソッドと、拒否を行うenemyメソッドを実装する。詳しくはfriendメソッド, enemyメソッドを参照のこと。
4. finalクラスチャレンジ
継承やソースの変更、クラスの削除等が行えなくなるbeFinalメソッドを実装する。quitFinalで解除できるようにする。
5. aliasチャレンジ
既存のクラスやメソッドに別名をつけて利用できるようにする機能を提供する。ただし言語にあるものを使うのではなく、新たに作成しなければならない。
6. フィボナッチ最適化チャレンジ
フィボナッチ数列を求めるメソッドを最適化する機能を実装する。オリジナルのソースは保たれており、ユーザからは最適化が見えないようになっていなければならない。aliasの利用は不可。
Let's do it!