Bruce.です。
> > > Smalltalkerの主張のように、オブジェクト/メッセージ志向のパラダイムって
> > > 理解しやすいかどうか、は、私には正直判断しかねます。
> >
> > んー、Smalltalkの一派であるSqeakを見るとそれほど身構えることも
> > ないのではないかと思います。無論アレは最初の取っ掛かりから
> > プログラムの字面が真正面に出てくるような教え方はしていないと思いますが。
>
> んでも、Squeak e-ToysからSmalltalk言語へは、滅多に進まない、と聞いた
> 気が……(大汗)
タイミング良く? こんな記事がありもうした。
http://journal.mycom.co.jp/articles/2007/10/01/moesuku/index.html
【レポート】アラン・ケイも萌えた!? - 萌えるSqueak「もえすく」 (1) Squeak(スクイーク)とは? | パソコン | マイコミジャーナル</a>
小中学生にプログラミングを教える上で、まず壁となるのが言語の問題である。ほとんどのプログラミング言語は英語がベースであるため彼らにはとっつきにくく、スペルミスによるエラーも後を絶たない。こうした問題を回避しつつ、彼らの創造性や論理的思考力を養うのに適したフリーのプログラミング環境が「Squeak(スクイーク)」である。
> > こと話をCとその眷属に絞れば、for文は形を変えた(おまけのついた)
> > while 文ですからね。BasicやPascalのそれとはちと意味が違うでしょう。
>
> あ〜PascalはCと、ほぼ同じですし、BASICも似たようなモンです。
異議ありッw
Basic/Pascalのfor文はFORTRANのDOループと同じで、ループの実行回数が
あらかじめ決まります。
しかしC styleのそれは、
for (初期化式; 継続条件; 増加式)
で、この継続条件や増加式(この辺の単語は今でっち上げたのであまり気にしないで
ください)には、帰納変数に対する単純な加減算だけではなく、たとえば
リンクつきリスト(だれだ「リンクリスト」とか珍妙な用語を作ったのはッ)を
辿るとか二分木のtraverseを行うときの継続条件を書くこともできます。
for (p=start; p!=NULL; p=p->next)
のように。
結局のところ、Cのfor文というのは(多少の違いに目をつぶってもらうとして)
初期化式
while (継続条件) {
何かの処理
増加式
}
と等価なものの、ある意味 syntactic sugar なわけだと思うわけです。
#わたしだけがこう思ってるわけじゃなくて、どっかで誰かが書いていたはず
> > > ※およそハッカーに似合わない「行儀の良い」ことが美徳になってる言語カルト
> > > って、PythonとPascalだけじゃないだろうか……まだあるかな?
> >
> > 行儀よさとは違うと思いますが、明確な規範があるということでEiffelとか。
>
> Eiffelはそうなんですか……でも規範という感じなら、RubyやSmalltalkも
> ある種の規範が強制されますが、そういう感じではないんでしょうか?
表面的になぞった知識しかないのでちとアレですが、Eiffelで手続き(or 関数)を
書く場合、
・事前条件
・事後条件
をソースコード上で明確に示さなければなりません。
たとえば、引数で受け取るものの値の範囲とか。
ですんでPython的なそれとはちと違うと思いますが、「礼を重んじる」というか
なんというか。
#design by contract?
いじょ。