2005-01-01から1年間の記事一覧

単項メッセージの使用頻度

System.exit() の「メソッドの使用頻度の統計」に触発されて…。 札幌市にお住まいの○○さんからのお便りです。「Smalltalk システムって、クラスライブラリはもちろん、言語処理系自体がほぼすべて Smalltalk 言語で記述されていて、ソースもエンドユーザーが…

ヒューメイン・インタフェース

http://capsctrl.que.jp/kdmsnr/wiki/bliki/?HumaneInterface なるほど“ヒューメイン・インタフェース”の話だけあって、「追加すべき機能の判断基準って何?」のあたりには、Apple のデザインする GUI と、Microsoft のデザインするそれとの対比を彷彿とさせ…

100 ドル PC とアルト

PC Watch:元麻布春男の週刊 PC ホットライン「アラン・ケイが Squeak で変える教育現場」 http://pc.watch.impress.co.jp/docs/2005/1111/hot392.htm 画素数に関して、ALTO と比べるところがニクイですね。っても、たぶんアラン・ケイが言ったことをなぞっ…

NSObject の +poseAsClass: をシミュレートする

Matz にっき 経由で、「ダイナミック Objective-C 第12回:ポージングで乗っ取り」。ここで紹介されている Cocoa/ObjC の poseAsClass: の作用が面白いので、同じようなもの(#poseAs:)を Squeak の Smalltalk で実装してみるテスト。#become: を使うので、…

Smalltalk と Ruby と LISP のシンボル

Smalltalk も Ruby も LISP もシンボルの本質は、いずれも“インターンされた文字列”です。インターン(intern)にはよい訳語を思いつかないのですが、簡単には「登録され管理された…」という感じでしょうか。しかし、実装や振る舞いは必ずしもそのとおりには…

Smalltalk 本

http://capsctrl.que.jp/kdmsnr/wiki/bliki/?SmalltalkBooks 邦訳はまだ入手可みたい。「サクサク Smalltalk ― オブジェクト指向のアートとサイエンス」 isbn:4501525703 オンラインドキュメントについて日本では、「 Smalltalk イディオム」や「オブジェク…

日時オブジェクトの扱い

バカ往く のある記述への反応で始まった inamode6 のやりとりを受けて ruby-list に「Date へのメソッド追加要望」という投稿がありました。そのスレを見ていて、Squeak システムの Smalltalk 言語で同様のことはどんなふうになっているのか興味を持ったので…

lambda の由来

大文字のΛxをいったん経由しているのですね。それなら分かるような気がします(“^x”→“λx”はちょっと唐突かな、というような印象を持っていたので…)。http://blade.nagaokaut.ac.jp/~poffice/news/fj.sci.math/1085

今月の日曜日は何回? 3

おお。id:mimpoo さんが、VisualWorks の Smalltalk で。じゃあ、Strongtalk で書いてみようかな…と心にもないことを。wMonth ってないんですね。 Squeak のはてっきり ANSI 由来だと思い込んでいました。 追記:とりあえず VisualWorks 版を、mimpoo さん…

今月の日曜日は何回? 2

ざっと見たところ、cweek を使ったものがないようなので(日数を 7 で割るのと、さほどかわりありませんが…)。 require 'date' t = Date.today; y = t.year; m = t.month p (Date.new(y,m,-7).cweek-(Date.new(y,m)-7).cweek)%52 -7 を -1 にすれば月曜日、…

Ruby で実行中のメソッドの名前の取得

同じく A Strolling Programmer 経由で、バカ往く 発。FAQ らしいので、メモ。 caller(0).first[/:in \`(.*?)\'\z/, 1] ちなみに、日曜日とはまたちがった意味で、ここいらへんも Smalltalk の得意とするところ。 thisContext method selector thisContext …

今月の日曜日は何回?

A Strolling Programmer 経由で、ふたたび id:nisyu さんによる はてなの質問、第二弾。「Rubyのプログラムで今月「日曜日」が何回あるのか教えてください。」 Ruby でも考えてみるつもりですが、まずはとりあえず、こういうのは Smalltalk の得意種目(?)な…

Io で非同期メッセージング

Erlang のチュートリアル の非同期メッセージングの例に触発されて、Io のアクター(“@()”)で似たようなことはできないか、Io の非同期メッセージングの学習を兼ねて試してみました。 syncFib.io fib := method(n, if(n < 3, 1, fib(n - 2) + fib(n - 1))) …

Io で Y コンビネータ

それで、遊びたかったのは何かというと、このタイトルのものです。epcg さんの clouds の最近のエントリー「Yオペレータとメモ化」で Y オペレータがうまく動作しない…というような記述があったので、ちょっと気になってチャレンジしてみました。 デフォルト…

次の「Rubyist のための他言語探訪」は Io

Matz にっき によると、次の“るびま”の連載「他言語探訪」には Io が取りあげられるのだそうで。 http://www.iolanguage.com/ 個人的には“お気に入りの言語”とか言っているわりに、最近はあまりいじっていません。そこで、予習(?)を兼ねて、ひさびさに最新版…

Ruby Is Smalltalk Minus Minus !?

http://c2.com/cgi/wiki?RubyIsSmalltalkMinusMinusバカ往く 経由で。 比較的めずらしい、Rubyist と Smalltalker の対決。まあ、じっさいは“対決”っていうほど読み応えのあるものにはなっていません。そもそも、このページの挑戦的なタイトルにつられてやっ…

ファイル内容の 表示・編集 機能を持たないファイルリスト

次の式を評価すると、ファイルの内容を表示したり編集するためのペインを欠いた状態でファイルリストを起動することができます。 FileList2 morphicViewNoFile openInWorldちょうど、先の簡易エディタモード(ファイラ機能のペインを欠いている)とは逆の状…

FileListSaveAsEnh-sumim.cs

ファイルリストは、通常、デスクトップメニュー → open... → file list で起動し、Squeak システム備え付けのファイラとして使用しますが、デスクトップメニュー → open... → file... でファイルを選んで開いたり、あるいは、次のようにファイルストリームに…

Ruby で /\w/ な文字からなる文字列を生成する

丁稚な日々 経由で、はてなの こんな質問…っていうか挑戦? Squeak の Smalltalk で書き下すとこんな感じ。 (($0 to: $z) as: String) select: [:each | each isAlphaNumeric or: [each = $_]] これだけで終わらせるのもなんなので、Ruby の勉強を兼ねて、最…

「まつもと直伝 プログラミングのオキテ」のネット公開はじまる

http://itpro.nikkeibp.co.jp/article/COLUMN/20050831/220318/Matz 日記 経由で。 でもなんだか最近の号の記事に比べると短いですね。連載開始のころはこんな分量だったのでしょうか。 追記:通りすがりさんご指摘の通り、勘違いしておりました。なぜか「こ…

Ruby と Smalltalk のリフレクション機能対応表

引き続き、日経 Linux 10 月号、「プログラミングのオキテ」にある Ruby のリフレクション機能の表を参考に、Squeak システムの Smalltalk との対応表を作ってみました。 リフレクション機能 Ruby Squeak の Smalltalk メソッド名の一覧 Foo.instance_method…

Smalltalk で SimpleDelegator

日経 Linux 10 月号の「プログラミングのオキテ」にて、SimpleDelegator の簡易実装を引き合いに、Ruby のリフレクション機能の紹介。まつもとさん曰く“Ruby に負けないくらい動的”…な Smalltalk ではどんな具合になるのかなぁ、と試してみました。 SimpleDe…

Linux Gazette の Smalltalk 関連記事、連載

id:mimpoo さんのところ経由でその存在(翻訳も)を知ったので、メモ。 Smalltalk と ペンギン (By Jason Steffler) [2000.03] Smalltalk [2000.11] Smalltalk(オブジェクト、クラス) [2000.12] Smalltalk(継承、ポリモーフィズム、抽象クラス、コレクシ…

逆数を求めるトリッキー(?)なコード

ちょっと前に arton さんのところの「トリッキーなコード」というエントリーを受けて、id:kmt-t さんによる 反応 で引き合いにだされた、逆数を求める C++ のコード。 #include <stdio.h> #define FP_ONE_BITS 0x3F800000 float p, r; p = 1234.121234f; int i = 2 * </stdio.h>…

Io を紹介するブログ

id:epcg さんは、Io について書くためにブログを開始されたのだそうです。すばらしい!

fix と memoize

Derive Your Dreams 発、結城さんのところほか、いろいろなところ経由で。なんだか流行っているみたいなので…(^_^;)。 まず、fix 。Smalltalk のブロックを使ったプログラミングにおいて、一番身近な存在といえる Scheme 版を id:SaitoAtsushi さんのものを…

Ruby との配列操作の比較

die さんの 歪 経由で、高林さんの いやなブログ 発「配列操作の比較表: Ruby, Python, JavaScript, Perl, C++」をうけて。 似たような文法の言語間で混同しないように整理するのが、そもそもの目的のようなので、Smalltalk がごとき変態文法はお呼びでない……

LLDN 「君ならどう書く」 Squeak 編の解説 1

あまりに時間が短かったので、ちょっと詳しめの解説をぼちぼち書いてゆきます。 事後に提出した資料(ソース、プレゼン静止画、プレゼンイメージを再現するためのプロジェクトファイル群。自由演技作品を含む)は、LLDN のサイトで公開していただいています…

LLDN 昼の部と Squeaker 夜の集い

私は参加できない…とか書いておきながら、ひょんなことで参加させていただくことになりました。どうぞお手柔らかに(^_^;)。 キミならどう書く 事前提出の発表資料(規定演技) 夜の部のチケットは売切れということもあり、ここはひとつ、umejava さんこと梅…

最強に凶悪な #become:

Journal InTime で shugo さんが呈しておられる「いやな予感」 にもちょっとだけからめて、#become: のはなし。 #become: というのは、レシーバと引数(パラメータ)のポインタを交換してしまうメソッドです。曲がり角でぶつかると、僕と君が入れ替わるって…