機械す。
> > まぁ、スクリプティング言語の好き嫌いはともかく、オブジェクト指向言語を
> > 話すのに、Smalltalkの知識を上っ面だけでも知らないのは問題だと思います。
>
> わかんないっす/
いや、Rubyは充分似てると思うんですが(汗)
# ご本人曰く「PerlっぽいSmalltalk」というのは、確かにそーかもな、
と、最近思いまする。
> まぁ、オブジェクト指向そのものを議論する気はさらさらないので、知らな
> くてもいいかなーとは思ってますが。ポリモーフィズムってなんだっけ?とけっ
> こう本気で思いました(--;
ただ単に、「どう扱うかを決めておいて、あとでそれに合わせてオブジェクト
を作る」ってダケの話なんですけどね。
型がきっちりしてると、仮想クラスだのインターフェイスだのが必要になっちゃ
って、いきなり難しくなるんですな、コレが。
タイプルーズなSmalltalkもPythonもRubyもJavaScriptも、放り込むだけなので、
とっても簡単。
たとえば設計するときに、
def sortReverse(list):
list.sort()
list.reverse()
return list
とかやっとけば、sortが整頓、reverseがひっくり返す、とか決めておけば、
どんなリストでも、この手続きで整頓されてひっくり返される、という案配
です。
……つか、簡単な例で説明するとマヌケだなぁ……
この例の前にRPGっぽくSwordとかArmorとかで説明しようとしたら、
とあるページ(http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/polymorphism.html)
でも同じような説明をしてました。やっぱ考えることは同じか……
でも、Pythonとかなら、別にItem classとかをベースクラスにしなくても
SwordPlusOne = Sword + 1
AromorPlusOne = Armor + 1
としておけば、
def AddPlusOne(item):
return item + 1
とか出来ます。
……ああ、なんでこうマヌケな例しか思い浮かばないのか……
> 困ったことに Squeak を触っても使い方がさっぱり想像できず、いつも数分
> で挫折しているので、Smalltalk の入り口に立つことすらできなかったりしま
> す。
Squeakだと、とりあえずTranscriptとWorkSpaceを開けば、簡単なSmalltalkの
式が試せますし、ボタンのスクリプトを覗いて改造すると、わかりやすいです。
/機械伯爵/