[#8257] Re: Smalltalk [Re: design patterns] — 助田 雅紀 <masaki.suketa@...>

助田です。

11 messages 1998/06/09
[#8259] Re: Smalltalk [Re: design patterns] — KIMURA Koichi <kkimura@...> 1998/06/10

[#8262] TkGrid do not exist? — Hiramatu Yoshifumi <hiramatu@...>

平松です。

26 messages 1998/06/10
[#8266] Re: TkGrid do not exist? — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#8269] Re: TkGrid do not exist? — NAGAI Hidetoshi <nagai@...> 1998/06/10

永井@知能.九工大です.

[#8271] Re: TkGrid do not exist? — NAGAI Hidetoshi <nagai@...> 1998/06/10

永井@知能.九工大です.

[#8375] new MethodIndex — keiju@... (Keiju ISHITSUKA)

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

21 messages 1998/06/16
[#8447] new MethodIndex — TEI meiki <tei@...> 1998/06/20

こんにちは、鄭です。

[#8448] new MethodIndex — TEI meiki <tei@...> 1998/06/20

再び、鄭です。_o_

[#8418] how to use delegate — gotoken@... (GOTO Kentaro)

ごとけんです

18 messages 1998/06/18
[#8419] Re: how to use delegate — matz@... (Yukihiro Matsumoto) 1998/06/19

まつもと ゆきひろです

[#8420] Re: how to use delegate — gotoken@... (GOTO Kentaro) 1998/06/19

ごとけんです

[#8421] Re: how to use delegate — matz@... (Yukihiro Matsumoto) 1998/06/19

まつもと ゆきひろです

[#8521] hash sort — "Kazuhiro Yoshida" <s95l980@...>

もりきゅうです。

34 messages 1998/06/26
[#8523] hash sort — gotoken@... (GOTO Kentaro) 1998/06/26

ごとけんです

[#8533] Re: hash sort — WATANABE Hirofumi <watanabe@...> 1998/06/26

わたなべです.

[#8534] Re: hash sort — gotoken@... (GOTO Kentaro) 1998/06/26

ごとけんです

[#8536] Re: hash sort — Sinichiro Dezawa <dezawa@...> 1998/06/26

出沢です

[#8538] Re: hash sort — gotoken@... (GOTO Kentaro) 1998/06/26

ごとけんです

[#8539] Re: hash sort — TAKAHASHI Masayoshi <maki@...> 1998/06/26

高橋です。

[#8541] Re: hash sort — gotoken@... (GOTO Kentaro) 1998/06/26

ごとけんです

[#8546] Re: hash sort — Tadayoshi Funaba <tadf@...> 1998/06/26

ふなばです。

[ruby-list:8387] Re: what type are true and false

From: keiju@... (石塚圭樹 )
Date: 1998-06-17 04:57:09 UTC
List: ruby-list #8387
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :8379 ] the message: "[ruby-list:8379] Re: what type are
true and false ", on Jun/17 10:43(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>|    ruby-1,0 filnal:
>|    eval "foo = 0"
>|    print "#{foo}\n"
>|    -> 0
--
>|    ruby-1.1b9_6 以降(それ以前の 1.1 がないのでここまで):
>|    eval "foo = 0"
>|    puts foo
>|    -> NameError
>
>この動作の違い("#{foo}"はOK,fooはダメ)は1.0の頃からです.で,
>その理由は
>
>  ローカル変数はコンパイル時に代入される必要がある
>
>というものです.つまり,後者ではfooが参照されるレベルではロー
>カル変数fooに代入が行われていないので,fooという識別子をロー
>カル変数と見なすことができないのです.一方,前者では式展開
>(の為のコンパイル)はevalの後に動的に行われるので,fooはロー
>カル変数であると見なされます.

これはバグじゃなかったのですね. 
# 失礼しました(__;;; >> 特に稲葉さん

とはいえ, 納得できるようなできないようなですね...

    eval "foo = 0"
    puts foo

は駄目で,

    eval "foo = 0"
    eval "puts foo"

はOKというのも... 直観に反していますね.

>これはrbcのエミュレーションが不完全だからですね.irbだとまし
>になってるんじゃないでしょうか?

うーん. 無理ですよね. というのもirbって(評価できる時点での)逐次実行で
すから,

 some_binding = proc{proc{}}.call
 eval 'eval "foo = 0"', some_binding
 eval 'puts foo', some_binding

ってなっています. 

この仕組みを変えると, irbとしての旨味もなくなっちゃいますしね...

PS.
バグみっけました.
# ruby_1.1b_25+patch([ruby-dev:2865],[ruby-list:8381])です.

proc {
  eval "foo = 0"
  (proc {foo = 10}).call
  eval "p foo"
}.call

def zz
  eval "foo = 0"
  (proc {foo = 10}).call
  eval "p foo"
end

zz

前者がバグだと思います.

# def zzと同じように内側のprocのfooと外側のfooは違う変数にならなくては
# ならないですよね.

# [ruby-dev:2865]のパッチと絡んでそうでやだな...

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

In This Thread