2004-03-01から1ヶ月間の記事一覧

クイックソートって、たしかに ArrayedCollection >> quickSort | x xs | self isEmpty ifTrue: [^ self]. x _ self first. xs _ self allButFirst. ^ (xs select: [: y | y = x]) quickSortとか ArrayedCollection >> quickSort | x xs suchY | self isEmpt…

継続、特に call/cc について調べていたら、最近流行りの継続ベースの Web アプリケーションの“継続”は call/cc のことじゃないとか 、Squeak にも callCC があった(一部ウソ)とか、いろいろとまた学べました。青木さんのこれも“継続”じゃないんじゃ…との違…

Lightweight Language MAGAZINE 買いました。3つのお題はおもしろそうなので、暇を見て Smalltalk/Squeak で書いてみたいですね。通信とかの勉強にもなりそうだし。なにしろ、Ruby のスクリプトはたいてい Smalltalk に直訳できるので助かります。(パター…

Rubyにまつわるえとせとら日記さんが興味を持っておられたように、Squeak システムでは Morphic GUI フレームワークのおかげで、エンドユーザーが GUI ウィジェットを回したりなどがあっけなくできたりします。Mac OS X や次期 Windows など、ウィジェットが…

初学者向け(というか、その回答から理解度を推し量れる)クイズをひとつ考えました。●問題 ワークスペースなど self を print it したとき、 self => nilと nil を返す場所では、super も super => nilと nil を返すのに、nil が true を返すメッセージ「is…

「結城浩の『Perlクイズ』」、ちょっと進みました。Perl の勉強になるのは当然として、 Smalltalk 自体にも新たな発見があってグッドです。そんなひとつ、Smalltalk で二変数を入れ換えるトリッキーな方法。 x := y flag: (y := x)#flag: の部分は noop な(…

Perl で、文字列中の変数をその値に置換する機能が便利そうだったので Smalltalk/Squeak でそれっぽいのができないかと思索。 name age string name _ 'Squeak'. age _ '10'. string _ 'My name is #name. I am #age years old.'. thisContext tempNames do:…

おそらくそれなりに名の知られている Python ユーザーが、学生時代の経験と最近の Squeak を通じて得た知識で(なにをとちくるったか) Smalltalk にかみついてみたら、彼が現存すると思いもしなかった Smalltalk ユーザーたちからかなりの数の認識の誤りを…

「結城浩の『Perl クイズ』」を Smalltalk/Squeak に置き換えてみる試みをしています。 http://squab.no-ip.com:8080/wiki/880 Perl と Smalltalk では、問題領域がかけ離れるにもほどがあるほどかけ離れすぎているような気もするのですが、Smalltalk 言語は…

http://www.sra.co.jp/smalltalk/SML/archives/2004-March/006454.html>(SIMULA-67)との関係は霧の彼方。SIMULA 67 におけるサブクラス誕生のいきさつは、http://d.hatena.ne.jp/sumim/20040311#p1 で書いたとおり、http://portal.acm.org/citation.cfm?i…

オブジェクト指向の説明の際に引き合いに出されることの多い「抽象データ型」はじつは、 オブジェクトより後に一般に知られるようになった。まあ、それ以前にオブジェクトという言語機能が導入されてから「オブジェクト指向」誕生までは5年から10年の歳月…

Smalltalk の PARC 時代の開発の経緯が知りたくて The early history of Smalltalk が掲載されていると squeak-dev メーリングリストで紹介されていた「History of Programming Languages」という洋書を、むかし、ちょっと奮発して買ったはいいものの、結局…

Swiki で Smalltalk/Squeak のクラスライブラリ・リファレンスを作る手順をちょっとイメージしてみる。クラスカテゴリ、クラス、プロトコル、メッセージパターンでおのおのページを作り、その中に各要素のページへのリンクを張る。プロトコルやメッセージパ…

最近、Slate というプロトタイプベースの言語を発見(もとい再発見。梅澤さんが Smalltalkers' salon ML で早い時期に紹介されているのを目にしているはずなので…。<こんなのばっかや)して、いろいろ遊んでいました。Slate へのコメントは差し控えるとして…

「Smalltalk-80 はかなりお歳をめした」ってあんた…。ちなみに、Smalltalk の t は小文字で、Smalltalk を指して SmallTalk と書くのはよくある間違いです。http://www.developer.ibm.com/ja/tech/faq/individual?oid=2:21480

id:propella:20040312#p2。では、もういちどブロックにチャレンジ。 #(1 2 3) in: [: array | array keysAndValuesDo: [: key : value | value even ifTrue: [array at: key put: 0]] ]だめみたいっす…。_| ̄|○括弧の間をあければよいのですか? ということ…

Smalltalk や Squeak 向けの、こんなところを発見。まだ書き込みや投稿がないのが寂しいですね。 http://forums.belution.com/ja/st/ http://techtips.belution.com/ja/st/ http://www.freeml.com/ctrl/html/MessageListForm/squeakusers

ブロックが消えてしまうので Smalltalk コードが書けない…。_| ̄|○

Squeak/Smalltalk 環境で、システムブラウザをつらつら眺めていたところ Object >> #in: を発見(もとい、再発見)。#doIfNotNil:、#ifNotNilDo: の nil でもいい版。テンポラリ変数を使うのがイヤなのに、ブロック変数ならいいかというと、それも潔しよしと…

ちょっとずつ使い方がわかってきました。皆さんよく、使いこなしておられますね(^_^;)。ちなみにジャンルだけだとキーワードにリンクが張られないのですね。Smalltalk とか Squeak とか本文に書かないと。

委譲を使ったって駄目なものは(設計が悪ければ)駄目でしょうね。継承は何のためにあるのかと問われた場合、システムの負荷軽減や効率向上のため、あるいはできることを少なくすることでユーザーの見通しをよくするためにある、と答えるのが(SELF 登場以降の)…

do:separatedBy:

#do:separatedBy: を知らずにいたのがちょっとくやしかったので、とりあえず VisualWorks と Squeak で共通のセレクタを機械的に抽出して列挙してみました。Squeak だと時間がかかりそうだったので途中から VisualWorks での作業に切り替えました。こういう…

keysAndValuesDo:

今まで、やむを得ずインデックス付きでループを回さなくてはならないとき、#doWithIndex: を好んで使っていましたが、今日、SequenceableCollection >> #keysAndValuesDo: の存在を知って感動したので、これからはこちらを使おうと心に決めたのでした。って…

キーワード「Smalltalk」の文章をもうちょっとなんとかならんかと考えてみたのですが、市民でないので更新できません。_| ̄|○ しょうがないので、ここにメモ。クラスベースの純粋オブジェクト指向言語.またはそれによって記述された統合プログラミング環境…