[#10553] base64.rb — Sinichiro Dezawa <dezawa@...>

出沢です

92 messages 1998/11/01
[#10565] Re: base64.rb — Shin-ichiro Hara <sinara@...> 1998/11/01

原です。

[#10583] Re: base64.rb — matz@... (Yukihiro Matsumoto) 1998/11/02

まつもと ゆきひろです

[#10595] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/02

出沢です

[#10611] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

出沢です

[#10613] Re: base64.rb — matz@... (Yukihiro Matsumoto) 1998/11/04

まつもと ゆきひろです

[#10614] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

matz> kconvにかけるってのは反則ですか? 今のkconvはB-encodingをデ

[#10615] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

>あー、そんなのがあったのか。反則だ。

[#10616] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

dezawa> >あー、そんなのがあったのか。反則だ。

[#10617] Re: base64.rb — WATANABE Hirofumi <watanabe@...> 1998/11/04

わたなべです.

[#10618] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

watanabe> 何も指定しなくていいです. もともとは nkf で

[#10621] Re: base64.rb — matz@... (Yukihiro Matsumoto) 1998/11/04

まつもと ゆきひろです

[#10623] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

matz> エンコードにはpack("m")がお勧めなのかなあ.

[#10635] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/04

dezawa> 手を付け兼ねてるのは、

[#10642] Re: base64.rb — WATANABE Hirofumi <watanabe@...> 1998/11/05

わたなべです.

[#10648] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/05

watanabe> エスケープとか全部含めて encode する必要があります.

[#10654] Re: base64.rb — WATANABE Hirofumi <watanabe@...> 1998/11/05

わたなべです.

[#10659] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/05

watanabe> といろいろ問題はあるけど pack("m") は encode した結果が長く

[#10663] Re: base64.rb — WATANABE Hirofumi <watanabe@...> 1998/11/05

わたなべです.

[#10664] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/05

watanabe> 自前で細切れに処理しないとだめかな?

[#10672] Re: base64.rb — aamine@... 1998/11/05

あおきです。

[#10673] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/05

aamine> さらに難しくしてしまうのもなんなんですが

[#10702] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/07

出沢@フジフイルム です

[#10737] Re: base64.rb — aamine@... 1998/11/09

あおきです。

[#10741] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/09

すばやい

[#10796] Re: base64.rb — Sinichiro Dezawa <dezawa@...> 1998/11/13

出沢です

[#10800] Re: base64.rb — Shun-ichi GOTO <gotoh@...> 1998/11/13

後藤@太陽計測です

[#10801] Re: base64.rb — Toru Hoshina <toru@...> 1998/11/13

保科です。

[#10802] Re: base64.rb — Shun-ichi GOTO <gotoh@...> 1998/11/13

後藤@太陽計測です

[#10804] Re: base64.rb — Toru Hoshina <toru@...> 1998/11/13

保科です。

[#10806] Re: base64.rb — Shun-ichi GOTO <gotoh@...> 1998/11/13

後藤@太陽計測です

[#10676] 11/10 tokyo offline meeting — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

19 messages 1998/11/06

[#10697] Re: 11/10 tokyo offline meeting — KIMURA Koichi <kkimura@...>

35 messages 1998/11/07
[#10721] Re: 11/10 tokyo offline meeting — keiju@... (石塚圭樹 ) 1998/11/08

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

[#10729] Re: 11/10 tokyo offline meeting — matz@... (Yukihiro Matsumoto) 1998/11/09

まつもと ゆきひろです

[#10738] Re: 11/10 tokyo offline meeting — keiju@... (石塚圭樹 ) 1998/11/09

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

[#10743] Re: 11/10 tokyo offline meeting — ARIMA Yasuhiro <fit0298@...> 1998/11/09

Regard to "[ruby-list:10738] Re: 11/10 tokyo offline meeting"

[#10708] Re: 11/10 tokyo offline meeting — TEI meiki <tei@...> 1998/11/07

鄭です。

[#10709] Re: 11/10 tokyo offline meeting — Sinichiro Dezawa <dezawa@...> 1998/11/07

では 「やぐら茶屋」NSビル店 で一応決まりということで?

[#10713] Re: 11/10 tokyo offline meeting — TEI meiki <tei@...> 1998/11/07

鄭です。

[#10747] ruby 1.1c7 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

23 messages 1998/11/09

[#10904] ruby 1.1c8 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

16 messages 1998/11/17

[#10910] require error (tkutil.so -> tk.so) — ttate@...

立石です。

17 messages 1998/11/17
[#10924] Re: require error (tkutil.so -> tk.so) — matz@... (Yukihiro Matsumoto) 1998/11/18

まつもと ゆきひろです

[#10926] Re: require error (tkutil.so -> tk.so) — WATANABE Hirofumi <watanabe@...> 1998/11/18

わたなべです.

[#11054] ruby-list offline meeting at 11/27 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

36 messages 1998/11/26
[#11056] Re: ruby-list offline meeting at 11/27 — Sinichiro Dezawa <dezawa@...> 1998/11/26

残念なのですが、出沢は無理そうです。

[#11057] Re: ruby-list offline meeting at 11/27 — matz@... (Yukihiro Matsumoto) 1998/11/26

まつもと ゆきひろです

[#11061] Re: ruby-list offline meeting at 11/27 — IWAMURO Motonori <iwa@...> 1998/11/26

岩室@富士通です。

[#11062] Re: ruby-list offline meeting at 11/27 — keiju@... (石塚圭樹 ) 1998/11/26

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

[#11067] Re: ruby-list offline meeting at 11/27 — "D.Kanda" <MAP2303@...> 1998/11/26

[#11072] Re: ruby-list offline meeting at 11/27 — keiju@... (石塚圭樹 ) 1998/11/26

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

[ruby-list:10996] Re: スコープの範囲

From: Koji Arai <JCA02266@...>
Date: 1998-11-20 21:33:04 UTC
List: ruby-list #10996
新井です。

ちょっと引用が多くて長くなってしまいましたが御勘弁
を。

>>> From: matz@netlab.co.jp (Yukihiro Matsumoto)
>>> Date: Fri, 20 Nov 1998 11:38:47 +0900
>>> Subject: [ruby-list:10983] Re: スコープの範囲

>     Rubyのローカル変数の有効範囲は静的に決まります

「静的」の意味がよくわからなかったのですが、コンパ
イル時にスコープを決めているということでしょうか?

で、結局は
「定義より前の"行"で、ローカル変数が有効になることはない」
ということになる?

#!/usr/local/bin/ruby
eval %q{
  $a = "a"
  def b; "b" end
  c = "c"
}

begin
    p $a
    p b
    p c
rescue NameError
    p "undefined"
end
__END__

"a"
"b"
"undefined"

これは、evalが独自のスコープを持っているからではな
く、コンパイルが別に行われているからと解釈すればよ
いのかな?
まぁ、結局は
「evalは、イテレータと同じようにローカル変数のスコープを持つ」
ということになる?

"イテレータと同じように"というのは重要(後述)

>>> From: Shin-ichro Hara <sinara@blade.nagaokaut.ac.jp>
>>> Date: Fri, 20 Nov 1998 12:28:14 +0900
>>> Subject: [ruby-list:10990] Re: スコープの範囲

> 原です。
> 
> ローカル変数のスコープで注意すべきことについて、くどくど
> 書いたのが [ruby-list:1212] にあります。よろしかった御覧
> 下さい。
> 

拝見させて頂きました。ありがとうございます。
以下、サンプルスクリプト以外を引用させて頂きました。

>>> From: sinara@blade.nagaokaut.ac.jp
>>> Date: Mon, 9 Dec 96 16:40:56 JST
>>> Subject: [ruby-list:1212] Summary (Re: [Q] Scope of local variable)

> 原です。
> 

> << 局所変数について >>
> 
> 【1】ローカル変数のバインドは静的に行われ、ローカル変数は最初の代
>   入文で定義される。
> 
>   この場合、静的とは、実行前にスクリプトのコード上で、という感じの
>   意味。
> 

「静的に」という用語が…

再掲、

「*いかなる場合でも*定義より前の"行"で、ローカル変
  数が有効になることはない」

あってます?

「ローカル変数のスコープは定義からブロック(?)の終りまで」

の方がいいかなぁ。

> 【2】イテレータのブロックでは、そこで初めて定義されたローカル変数は
>   局所化される。

> イテレータではブロック外部のローカル変数(小文字で始まるの変数)にアク
> セス出来る。

局所化されるかどうかを文法で区別できないのは少し痛
いですね。

イテレータを書くときは、常に局所変数の名前がダブら
ないように気を使わなくてはいけないですから。

evalも同じ。

#!/usr/local/bin/ruby

$assign = %Q{v = "2"; p v}

eval $assign            # => 1  局所化されてる
v if defined(?v)        # =>

v = 1                   # eval より前に定義
p v                     # => 1
eval $assign            # => 2  局所化されない
p v                     # => 2  eval によって値が壊される
__END__

でも、いまさら my(perl)やglobal(tcl)は導入したくないなぁ。

> メソッドの定義では外部のローカル変数(小文字で始まるの変数)にアクセス
> できない。

これは、自然に受け入れられる

> 
> 【3】定義は、代入を実行することによってなされるのではなく、実行以前に
>   スクリプト中に代入文が現れたときになされる、
> 

そうだったのか〜。「静的」だからかぁ。

> 【4】定義とは、いわばアクセス権を与えることである。defined?(j) は、
>   j という名前の変数へのアクセス権の有無を判定する。その場でアクセ
>   ス権がない名前の変数でも、存在していないわけではない。

これもずいぶん特殊ですね。

> 
> イテレータブロック内のローカル変数は、各回ごとに消滅する。
> 

> 
> 他にも気をつけることあるかな。
> 

[ruby-list:10854]の

>>> From: matz@netlab.co.jp (Yukihiro Matsumoto)
>>> Date: Mon, 16 Nov 1998 11:27:10 +0900
>>> Subject: [ruby-list:10854] Re: IO#pos=

> いやあ,一般にselfは省略可能なんですが,属性代入に関してはロー
> カル変数の代入と全く区別がつかないので,省略できません.とい

は、重要ですね。私は、これを読むまで xx= メソッド
は作るまいと心に誓ってました。

class Test
  attr "v", TRUE 
  def v1(arg)
    self.v = arg        # v= メソッド呼び出し
    p @v
  end
  def v2(arg)
    v = arg             # v= メソッドではなく、局所変数への代入
    p @v
  end
end

test = Test.new
test.v1(true)   #=> true
test.v2(false)  #=> true

以上、うーん、さらに複雑にしてしまったなぁ。実際の
ところは、局所変数で困ることはほとんどないんですけ
どね。


おまけ

save, $/ = $/, nil
$_ = gets
$/ = save

こういう書き方は、なんか嫌です。$/ は、gets(nil)で
代用できるからいいんですけど。

というわけで、以下みたいなのを考えて見ました。

#!/usr/local/bin/ruby
# 
# perl の local() を実現する (ただし、$global変数だけ)
# (こういうのを「深い束縛(deep binding)」と言うらしい)
#
module LocalScope
  def local(global_vars)
    save = eval("[" + global_vars + "]")
    yield
    eval(global_vars + ",*dummy = save")
  end
end

include LocalScope

$/, $; = "1", "2"
local("$/, $;") {
  $/, $; = "3", "4"
  local("$/, $;") {
    $/, $; = "5", "6"
    p $;, $/
  }
  p $;, $/
}
p $;, $/
__END__

"6"
"5"
"4"
"3"
"2"
"1"

ほら、perlみたいになった。(汚さが ^^;)

# :symbol が使えればと思ったのですが、:$/ から$/の値
# を取り出す方法がわからなかったんです。

In This Thread