2006-12-01から1ヶ月間の記事一覧

特異クラス定義の文法のナゾ、と Squeak の“なんちゃって特異クラス”

rubyco(るびこ)の日記 - 疑問:特異クラスの構文の不思議 発で、サブクラス定義時は class NewSub 調べてみると Matz さんの発言で件の構文が登場するのは [ruby-list:4677] が比較的古いもののようですが、これ(と、一連のやりとりの中)にはなぜ 私は r…

Squeak3.9 のオートインデント機能をオフにする

いっとき鳴りを潜めていた改行時のオートインデントが 3.9 でまた性懲りもなく復活したのですが、どうにも慣れないので解除しようとしたところ、なんと、今度のはオフ and/or 回避ができない! がーん。 ソースを見ると、いちおう ctrl + return で回避でき…

プレゼント交換 再び… 2

鍋あり谷あり - あなたならどうお書きになります1.0 経由で、{informa,computa,evolu}tion: プレゼント交換の手伝い の Mathematica 版がどんなふうに動いているのか興味を持ったので、それを調べる過程で Squeak の Smalltalk で直訳…というか意訳ぎみにし…

プレゼント交換 再び…

仕切り直しで 鍋あり谷あり - あなたならどうお書きになります1.0 に再チャレンジ。 今度は大丈夫だと思うのですが…(^_^;)。 ウリは、大人数の場合、たとえば 100 人参加のパーティでも、平均 0.5 秒程度 @ 1 GHz PenM(ruby 1.8.5 (2006-08-25) [i386-cygwi…

プレゼント交換のペアを決めるスクリプト

#二組四人のときに四通り…というくだりで気づくべきでした(^_^;)。当方で問題を取り違えておりました。ごめんなさい。以下はそのまま晒しておきますが、タイトル共に間違いでリンク先の“お題”とは全然関係ない内容になってしまっていますので、どうぞあしか…

Java、C++、Eiffel における仮想関数の再定義・多重定義

普段、Smalltalk で遊んでいるだけだと、メンタルモデルが単純になりすぎていけません(^_^;)。 ボケ防止を兼ねて、基本である(…と個人的に考える)上記三言語における継承の例を書いて動かしてみたので結果をメモ。興味の対象は、派生クラスでの同名メンバ…

"if necessary" vs. "if need be" vs. "may be"

いやなブログ - 学校では教えてくれないバッドノウハウ英語 #3: if need be より。Squeak の Smalltalk におけるメソッド名(セレクタとも言う)ではどうなっているのか調べてみました。 話題の if need be はありませんでしたが、if needed for がよく使わ…

Java でインスタンスメソッドを静的にコールする方法はない? 2

ここで「静的に」というのは、“狙いを定めて…”とか“継承関係による優先順位をすっとばして…”とか“(可能なら)型安全性を無視して…”というような意味で使っています。わかりにくくてごめんなさい。 そう…。この場合、“メソッドディスパッチを介さずに直接…”…

Java でインスタンスメソッドを静的にコールする方法はない?

で、FA? id:sumim:20061201:p1 の絡みで、ふと思い立って Java において、メソッドを引っこ抜いて直接叩く方法なんかあるのかなぁ…などと探していたのですが、いろいろと調べているうちに、そもそもタイトルのような機能がなさそう…という結論に至ったの…

ハローワールドはどう書くべきか

もとはD言語で、d.y.d. - こんにちは世界 発の、import 不要な(しかしC言語の)printf 版、std.stdio.writefln 版、std.cstream.writeLine 版と、% を特別扱いしない writefln の提案。これを受けて他のユーザーから、プラグマを使った版、Smalltalk でい…

単語の出現頻度を調べる

rubyco(るびこ)の日記 - 単語の頻度を調べる を Squeak の Smalltalk で。 Smalltalk には、毎度お馴染みの Bag があるので、これを使うと便利です。というか、Bag が他に役立つ場面を思いつかんとです。 | string | string := 'We wish you a Merry Chris…

'SAKURA' -> 'HZPFIZ' な暗号文を復号する

熱血!平成教育学院の今夜の放送の問題より。復号(暗号化も同じ)のためのスクリプトを Squeak の Smalltalk を使ったいくつかの方法で。 ■対応する復号文字の ASCII コードを計算で求めて #collect: | codeString | codeString := 'HZPFIZ'. ^ codeString …

サブクラスから自身がオーバーライドしたスーパークラスのメソッドを呼びたいとき 2

id:sumim:20061201:p1 の続き。ここで、Ruby でメソッドを“引っこ抜いて叩く”例に相当するものを Squeak の Smalltalk で次のように書いたところなのですが… D >> bar2 | method | method := self class superclass lookupSelector: #foo. ^ method valueWit…

Re: 残念ながら、Smalltalkerのようなイメージでプログラムを見ることができない…

OOP

矢沢久雄のソフトウエア芸人の部屋 : 【第3回】 このごろオブジェクト指向セミナーの人気が高まっています より。 正直、あまり残念がる必要はないと思います。ケイのオブジェクト指向とストラウストラップのオブジェクト指向は、同じ「オブジェクト指向」を…

サブクラスから自身がオーバーライドしたスーパークラスのメソッドを呼びたいとき

より正確には、サブクラスのインスタンスから、自身が属するクラスがオーバーライドしたスーパークラスのメソッドを、自身が属するクラスに定義した別のメソッドからコールしたいときにはどうするか?…でしょうか。(^_^;) 2chの Ruby 初心者用スレへの投…