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

トレイトにおける、メソッドコンフリクト時の対処のしかた

多重継承機構を利用する際の問題としてよく取りざたされる「メソッド名のコンフリクト(衝突)」ですが、Squeak Smalltalk のトレイト機構(Traits)では、同種のミックスイン機構の場合と異なり、その対処はユーザーに委ねられます。 たとえば、いずれもメ…

新規トレイト作成用のテンプレートをクラスブラウザに出させるための細工

「トレイト」は Squeak で 3.9 から組み込みになった Ruby のモジュールライクな多重継承機構(Traits。この場合、複数形?)や、そのエンティティの名前(trait)、および、オブジェクトとしてのそれ(Smalltalk なら当然!w)が属するクラス名(Trait)の…

Ruby の落とし穴:モジュールの特異メソッドは include 先クラスからはコールできない?

[ruby-talk:247201] Re: class を読みつつ、へぇ… Ruby には module_function なんて機能(インスタンスメソッドの特異メソッド化?)があるんだ…とか軽く驚きつつ、でもこれって include Foo した Bar からは呼べないのか…と不思議に思ったのでメモ。当初、…

繰り返しで最後(あるいは最初)だけ特別扱いする処理の書き方

[ruby-talk:246464] Last iteration condition おもしろそうなので、Enumerable#inject の、引数を省略したときに最初の要素をインジェクトする…というデフォルトの動作を悪用したトリッキーな方法を考えてみました。(←要素を数えて順番で判断したら負けだ…

Croquet SDK 1.0 リリース

Croquet(クロッケー)は、3D仮想空間をネットワーク経由で共有するためのフレームワークです。Squeak システム上に Smalltalk で実装されています(いまのところはまだ? 将来的はどうなんでしょう…)。 David A. Smith's blog - Croquet SDK 1.0 Release…

クラス変数というのはやめにして、クラス共有変数とでも呼べばいいのか?

[ruby-talk:245207] class methods and instance variables in ActiveRecord::Base と一連のやりとりを見ていて思ったコト。クラスごとに管理される共有変数…といった意味合いで。 Smalltalk や Ruby で、「クラスメソッド」や「クラスインスタンス変数」と…

Smalltalk や C++ は何も発明していない。発明したのはケイやストラウストラップ。

OOP

第1回 サルでも分かるプログラミング言語の新潮流【前篇】の図中の 1969 年の Smalltalk というのはご愛敬として…(おそらく、FLEX システムあたりと取り違えられたのでしょう。自他共に認める言語オタクだけあって間違い方としては渋いですね(^_^;))気にな…

大事なのは、オブジェクト…じゃなくて、メッセージング

Smalltalk の場合、一歩という基本に当たるのはオブジェクトです。つまり Smalltalk では、すべてがオブジェクトとメッセージ交換を扱います。 IBM Developer 日本語版 : 大変申し訳ありません。このページは無効です。 ポール・グレアム …じゃなくて ブルー…

ちまた(っても Squeak 界隈限定)で流行りの Coke で遊んでみました 2

id:sumim:20070306:p1 の続き。たらいを回しているだけでは、なんだか申し訳ないような気もしてきたので、Coke Python の壊れているところでも直してみようかな…と思ったのですがまだ理解とスキルが足りていないので、それはやめにして、Coke JavaScript の…

ちまた(っても Squeak 界隈限定)で流行りの Coke で遊んでみました

アラン・ケイが Smalltalk(Squeak)を卒業して次を目指すための秘密兵器と目される“黄金の箱”あるいは「イアンのやつ」 と呼ばれている Pepsi & Coke 。地球の重力(暫定ダイナブック= Smalltalk )に魂を縛られた「オールドタイプ」な私には明らかに新た…

Squeak Smalltalk で FizzBuzz

コメント欄が「キミならどう書く? 〜いろんな言語で FizzBuzz 〜」状態…になっている Raganwald: Don't Overthink FizzBuzz より。当該エントリー中に提示されている Ruby で書かれたちょっと変わった実装の動きがよく分からなかったので、例によって Squea…

GNU Smalltalk の“あなごる”向け TIPS

関係のない Squeak Smalltalk でも、つい、変数を一文字にしたり、スペースを極力省いて書いてしまって苦笑いをするほど中毒性が高くてキケンきわまる“あなごる”こと shinh さんの anarchy golf ですが、ダメだダメだと文句をいいつつも GNU Smalltalk のタ…

GNU Smalltalk における文字列比較の落とし穴

Squeak Smalltalk とか VisualWorks Smalltalk(Cincom Smalltalk) 'Abc' < 'abc' "=> true " だよねぇ? ふつーは。 なのに、 GNU Smalltalk 'Abc' < 'abc' "=> false " むむむ。 String whichClassIncludesSelector: #< "=> CharacterArray" Return true …

#includes:(あるいは Ruby の include?)のコストは高く付く

ユメのチカラ: Rubyで習作の性能評価 より。正直、あまりコストのことは考えていなかったのですが、こんなふうに歴然とした差を見せつけられると、簡潔に書けて便利だからといって、安易に #includes: を使ってはいけないのだな…と気づかされます。勉強にな…

自然対数の底を求める

shinh さん の anarchy golf に、自然対数の底を小数点以下 100 桁までを出力するコーナー(?)があるのですが、ちゃんと求めようとすると(もちろん、ゴルファとして、この時点ですでに考え方が間違っているというのはおいておくとして…)どうしてもタイムア…

3つのファイルから比較表を作成

404 Blog Not Found:ruby - 添削 - もっとDRYに と、Matzにっき- ユメのチカラ: Rubyで習作 添削 経由で。キミならどう書く?的なノリでトライしてみました。例によって、Squeak の Smalltalk で書いてから、あとで Ruby の直訳っぽいのを載せます。 まず Sq…

テニスの取得ゲーム状況

キミのコードが汚い理由 − @IT をうけた、Haskell 脳その他の方々による Ruby 版などを拝見。 sshi.Continual - 美しいコード? 趣味的にっき - テニスの勝負判定コード Tommy Heartbeat 2nd - 美しいプログラムコードとは。 バカが征く - めんどいからRuby…

Rails vs Seaside

この週末に催される Squeakers' Night in 未来パーティ 2.0(残念ながら私は参加できず…)を受けて、umejava さん こと梅澤さんによる、解凍後にダブルクリックで起動可能な Seaside 日本語版の自習用パッケージ(SeasideJOnePlus)が公開されたこともあり、…

CLOS とかの総称関数って、オブジェクト指向的記述においてメンバアクセス演算子の第一オペランド(あるいはメッセージング・パラダイムでなら「レシーバ」)を関数呼び出しの際の引数として特別扱いすることを他の引数についても“一般化”したクールなもの…って勝手に思いこんでいたけれど、よく考えたら、これってごく平凡なオーバーロード機構(もともとその手の機構を欠いた LISP にとっては実現にちょっと手間取っているけれど…)にすぎないんじゃないの?

…と、ふと思った。

オブジェクト指向言語として必須な要素とは何か?

OOP

ときどきの雑記帖 リターンズ -おしえて(OOPLの)えらいひと より。お呼びでない…とは思いましたが、私のこれまで調べたことを頭の中で整理するのに役立ちそうなので、できるだけ簡潔にまとめてみます。 ケイのオブジェクト指向(メッセージングのオブジェク…

Ruby の落とし穴 3

tech addict - ruby gotchas and caveats に触発されたわけでもないでしょうが、タイミング良く ruby-talk でも Ruby のクラス変数に混乱させられた話が。さらにこのスレを受けて、オライリーの Ruby ブログにもに NubyGems: Don't Use Class Variables! - O…

Ruby の落とし穴 2

id:sumim:20070102:p1 の続きのような、そうでないような…。 Ruby の、いわゆる“インスタンスベース”(語弊があるので使うのを避けるようにしていますが、一般には「プロトタイプベース」)的な側面としてよく紹介されるものに、「特異メソッド」と呼ばれる…

Ruby の落とし穴

Matzにっき(2006-12 -20) 経由で tech addict - ruby gotchas and caveats より。Smalltalk に関連していそうなこと、そうでなくとも新しく知ったところを抜粋して Java、Python の勉強を兼ねてメモ。 暗黙の型強制 1. strings aren't auto converted into n…