[#837] request SCAN — Shin-ichiro HARA <sinara@...>

原です。

25 messages 1997/11/14
[#838] Re: request SCAN — matz@... (Yukihiro Matsumoto) 1997/11/14

まつもと ゆきひろです

[#839] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#840] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#841] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#843] Re: request SCAN — matz@... (Yukihiro Matsumoto) 1997/11/14

まつもと ゆきひろです

[#844] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#845] Re: request SCAN — matz@... (Yukihiro Matsumoto) 1997/11/14

まつもと ゆきひろです

[#864] [Req] Proc.new — Shin-ichiro HARA <sinara@...>

原です。

53 messages 1997/11/19
[#865] Re: [Req] Proc.new — matz@... (Yukihiro Matsumoto) 1997/11/19

まつもと ゆきひろです

[#866] Re: [Req] Proc.new — Shin-ichiro HARA <sinara@...> 1997/11/19

原です。

[#867] Re: [Req] Proc.new — matz@... (Yukihiro Matsumoto) 1997/11/19

まつもと ゆきひろです

[#875] Re: [Req] Proc.new — Shin-ichiro HARA <sinara@...> 1997/11/20

原です。

[#877] Re: [Req] Proc.new — shugo@... (Shugo Maeda) 1997/11/20

前田です。

[#879] Re: [Req] Proc.new — Shin-ichiro HARA <sinara@...> 1997/11/20

原です。

[#886] Re: [Req] Proc.new — shugo@... (Shugo Maeda) 1997/11/20

前田です。

[#890] Re: [Req] Proc.new — keiju@... (石塚圭樹 ) 1997/11/20

けいじゅ@日本ラショナルソフトウェアです.

[ruby-dev:903] ruby env[ Re: [Req] Proc.new ]

From: keiju@... (石塚圭樹 )
Date: 1997-11-20 07:46:45 UTC
List: ruby-dev #903
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-dev :00895 ] the message: "[ruby-dev:895] Re: [Req] Proc.new
", on Nov/20 15:03(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes:

>まつもと ゆきひろです
>
>|それはともかく, rubyは関数(メソッド)をオブジェクトとして使えないのは
>|rubyをベースとしたemacs見たいなもの(環境)を作成していくには, 問題にな
>|りそうですね. 
>
>そうですか? なぜなんだか良く分かんないですけど.イテレータ
>やProcでは実現できないんでしょうか? で,仮にそうであった場
>合,どうあるのが望ましいと思いますか?

emacsでは, ある関数の定義を変更したくて, かつ昔の関数を呼び出したい時
に,

(defun foo() ...)

(setq old-foo (symbol-function 'foo))

(defun foo ()
  ;new-def
  (funcall old-foo))

なんてしますよね. ああ, でもaliasを使えばいいのかな... でも, aliasは
globalだから変数に代入できるelispよりは使いづらいですね.

イテレータやprocを使う手もあるかも知れませんが, emacsを見れば分かるよ
うに何かの機能(mh-e.elなど)を実現する側は普通に処理を書きたいものだと
思います. その場合メソッドか関数で実現するのが通常だとおみます. それを,
mh-e.elを拡張する人間のことを考えて, イテレータやprocをつかえってのも...

まあ, サブクラスを使ったりしてうまく回避する方法フレームワークがあるか
もしれませんが...

# elispもクラスが定義できればどんなに楽だったかと思ったことは何度もあ
# りますし...

>|あと, クラスを再定義(上書き)できないことも...
>
>これはありますね.Rubyは「基本はスクリプト言語なんだから毎回
>再起動すれば良い」というスタンスで今の仕様になっています.定
>数なんかも上書きできませんから同様に問題になりますね.

ですね. 

>この問題は解決可能なんでしょうか.定数のundefがあれば良いの
>かなあ.

定数のundefは, 定数に束縛されているオブジェクトとの束縛を解除して, 定
数そのものをなかったことにするってことですね. そうすると, あるクラス
Fooが定義されていて, undef Fooを行なうとFooは名前なしクラス(か他の名前
のクラス)になるわけですね. そうするとFooのインスタンスはどうなるかって
問題が発生しますね...

そうするとクラスFooの連続性というか同一性をどう取り扱うかの問題が発生
しますね...

きっと, undef Fooしてclass Foo..endした場合は, (同じ名前の)別のクラス
を新たに定義していると考えるんでしょうね... したがって, 旧Fooのインス
タンスはそのまま旧Fooのインスタンスのままになると.

そうすると, もともともの目的だったクラスの再定義はもうちょっと考えない
といけなくなりますね... メソッドのundefと(クラスの中の)定数のundefがあ
ればどうにかなるような気もするんですが... いろいろと問題がありそうです
ね.

Smalltalkは, 通常は同一性が保たれていて, スーパークラスが変わった時は
別のクラスになったと思いました. CLOSなんかはどうなっているんでしょう?

あと, この後にはスキーマ進化の問題が...

># まあ,万能の言語は無いということで.

まあ, そうなんですが環境系APはrubyの得意とするところであっても良いと思
うんですが... まだないですが(^^;;;

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@rational.com <<---

In This Thread