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! |
お知らせ >