[#13434] irb message typo — Kazuhiro NISHIYAMA <zn@...>
typoだと思います。
[#13455] ext/extmk.rb.in — Kazuhiro NISHIYAMA <zn@...>
ext/extmk.rb.inですが、'w'でopenするのならreadable?ではなく
わたなべです。
[#13463] [BUG?] mutex_m.rb — akira yamada / やまだあきら <akira@...>
まつもと ゆきひろです
[#13479] [BUG] Segmentation fault — Kazuhiro NISHIYAMA <zn@...>
文字列操作しているところで[BUG] Segmentation faultとでて
まつもと ゆきひろです
In <991811793.511554.930.nullmailer@ev.netlab.zetabits.com>
まつもと ゆきひろです
[#13486] drive letter on mingw32 — nobu.nakada@...
なかだです。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
[#13493] yield *[[]] — Tanaka Akira <akr@...17n.org>
しばらく前に、yield *[[]] の挙動に関して bug report をして、まつもとさ
なかだです。
In article <200106071409.XAA21101@sharui.nakada.kanuma.tochigi.jp>,
まつもと ゆきひろです
In article <991988462.179562.20598.nullmailer@ev.netlab.zetabits.com>,
まつもと ゆきひろです
In article <992009406.425405.24078.nullmailer@ev.netlab.zetabits.com>,
まつもと ゆきひろです
asgn.rb を読んでみましたが... なんというか nil.to_a が [] であることを
まつもと ゆきひろです
In article <992022213.746115.25347.nullmailer@ev.netlab.zetabits.com>,
前田です。
Shugo Maedaさんの<87lmn336s3.wl@localhost.netlab.jp>から
前田です。
Shugo Maedaさんの<87hexr316u.wl@localhost.netlab.jp>から
前田です。
まつもと ゆきひろです
前田です。
In article <m38zj242y9.wl@localhost.localdomain>,
原です。
In article <4.3.2-J.20010612154813.02c89a70@blade.nagaokaut.ac.jp>,
原です。
In article <4.3.2-J.20010612185543.00c8b988@blade.nagaokaut.ac.jp>,
まつもと ゆきひろです
In article <992410104.066682.22743.nullmailer@ev.netlab.zetabits.com>,
In article <hvor8wo501g.fsf@flux.etl.go.jp>,
まつもと ゆきひろです
In article <992533086.935976.4066.nullmailer@ev.netlab.zetabits.com>,
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
金光です。
まつもと ゆきひろです
金光です。
前田です。
けいじゅ@日本ラショナルソフトウェアです.
金光です。(^_^)
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
[#13535] File::fnmatch to go — "Akinori MUSHA" <knu@...>
そろそろ File::fnmatch の件を決着させたいので最終提案です。
[#13564] Dir::open(){} — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#13624] Forward: Re: [ruby-talk:16677] Re: Problem running irb with Ruby 1.6.4 under FreeBSD 4.0 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
わたなべです。
[#13626] Syncronizing the 1.6 libraries with the 1.7 ones — "Akinori MUSHA" <knu@...>
標準添付ライブラリの 1.6 と 1.7 での違いを調べてみたのですが、
[#13631] 超漢字 ruby が落ちる — "TOYOFUKU Chikanobu" <toyofuku@...>
豊福です。
[#13650] Re: [ruby-ext:01803] Re: Ruby/SDL on PS2 LinuxKit — WATANABE Hirofumi <eban@...>
わたなべです。
まつもと ゆきひろです
まつもと ゆきひろです
なかだです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
こんにちは、なかむら(う)です。
まつもと ゆきひろです
なかだです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
有馬です。
なかだです。
有馬です。
In message <200107301156.AA00175@fit0298.fitec.co.jp>
[#13652] very long array and GC. — Tanaka Akira <akr@...17n.org>
ふと、とても長い配列を使う機会があったのですが、なんとなく遅いことに気がつきました。
Tanaka Akiraさんの<hvoithjwz23.fsf@flux.etl.go.jp>から
In article <200106260640.PAA12913@zeus.sofnec.co.jp>,
まつもと ゆきひろです
In article <993540668.285220.13545.nullmailer@ev.netlab.zetabits.com>,
[#13666] net/http.rb warnings — nobu.nakada@...
なかだです。
あおきです。
なかだです。
[#13668] ruby_m17n make error — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
まつもと ゆきひろです
高橋征義です。
まつもと ゆきひろです
高橋征義です。
豊福です。
[#13672] irb/ruby-lex.rb — GOTO Kentaro <gotoken@...>
引数の数が間違ってるのは確かですが、これで正しいのか自信はあ
[#13705] eval(code, true, filename) — Shugo Maeda <shugo@...>
前田です。
まつもと ゆきひろです
前田です。
Shugo Maedaさんの<wkithdwg3r.wl@STUDLY.priv.netlab.jp>から
[ruby-dev:13528] Re: yield *[[]]
In article <992022213.746115.25347.nullmailer@ev.netlab.zetabits.com>,
matz@zetabits.com (Yukihiro Matsumoto) writes:
> |asgn.rb を読んでみましたが... なんというか nil.to_a が [] であることを
> |巧みに利用した仕様ですねぇ。いまのところ穴は見当たりません。
>
> 今までちゃんと考えてなかったんで、良い機会でした。
さらに検討してみたところ、いくつか疑問が湧いてきました。
(1) ... = arg, *[] の挙動
% ruby -e 'a, b = [1, 2], *[]; p [a,b]'
[[1, 2], nil]
*[] が展開されて消えるとすれば、[1, 2] と表示されるというのが意図する
挙動な気がします。
(2) ... = ..., *non-array の挙動
% ruby -e 'a, b = 1, *2'
-e:1: failed to convert Fixnum into Array (TypeError)
* が右辺先頭にある場合には例外が起きないので一貫性に欠けると感じます。
そもそも「配列への変換」というのはどのようにして行なわれるのでしょうか?
(3) 自己代入の右辺で複数の式が扱えてもいい気がする.
% ruby -e 'a = [1]; a += 2, 3; p a'
-e:1: parse error
もはや多重代入の右辺はなんらかの(ひとつの)値を生成するための形式なので、
自己代入の右辺に使えない理由はないと思います。
(4) Proc との関連性
self[arg ...]
call(arg ... )
手続きオブジェクトを実行します.引数はブロックの引数にそのまま
(多重代入のルールに従い)代入されます.
というマニュアルの記述はもはや明らかに正しくありません。
(以前正しかったのかどうかも怪しいところですが。)
% ruby -e 'lambda {|a,| p a}.call([1,2,3])'
[1, 2, 3]
% ruby -e 'a, = [1,2,3]; p a'
1
% ruby -e 'a, = 1,2,3; p a'
1
% ruby -e 'lambda {|a,| p a}.call(1,2,3)'
-e:1: wrong # of arguments (3 for 1) (ArgumentError)
from -e:1:in `call'
from -e:1
さて、現在の挙動をちゃんと理解できたかどうかを確認するために、私が理解
しているところの挙動を(マニュアル風に)書き下してみました。この理解は正
しいでしょうか? (左辺の記述が甘いのは承知していますが。)
代入
文法:
左辺式 '=' 右辺式
左辺式の文法:
変数
定数
式`['expr..`]'
式`.'識別子
右辺式の文法:
式
多重代入
左辺式の文法:
左辺式 `,' [左辺式 [`,' 左辺式 ...] [`,']]
[左辺式 `,' ...] `*' [左辺式]
右辺式の文法:
式 `,' 式 [`,' 式 ...]
[式 `,' ...] `*' 式
代入の左辺・右辺には複数の式を記述することができ、
どちらかにでも複数の式がある場合の代入を多重代入といいます。
左辺に複数の式が記述された場合、
右辺の値が配列に変換され、各要素がそれぞれの式に代入されます
左辺の式の数よりも配列の要素の数の方が多い場合には、
余った要素は無視されます。
配列の要素が足りない場合には対応する要素の無い式には nil が代入されます。
左辺の最後の式の直前に * がついていると、
対応する左辺のない余った要素が配列として代入されます。
余った要素が無い時には空の配列が代入されます
右辺の最後に「`*' 式」がある場合、その式の評価結果は
配列に変換され、右辺に展開されます。
展開後、右辺に式がなくなった場合、nil が右辺の値になります。
右辺の式がひとつになった場合はその式の値が右辺の値になります。
右辺に複数の式がある場合はそれらの配列が右辺の値になります。
つまり、右辺式が「式1 `,' ... `,' 式n」という形であった場合、
[式1の値, ..., 式nの値] という配列が右辺の値になります。
また、右辺式が「式1 `,' ... 式n `,' `*'式0」という形であった場合、
基本的には [式1の値, ... 式nの値, *式0の値]という配列が右辺の値になります。
ただし、右辺式が「`*' 式」という形で配列に変換した式の値が [] の場合、
nil が右辺の値になります。
また、右辺式が「`*' 式」という形で
配列に変換した式の値が要素を一つしか持たない配列であった場合、
その要素が右辺の値となります。
さらに、右辺式が「式1 `,' `*' 式2」という形で
配列に変換した式2 の値が [] の場合、
式1 の値自体が右辺の値となります。
多重代入も式であり、その値は右辺の値です。
ただし、式自体に `,' が含まれるため、
引数など、式の後に `,' が現れる可能性のある文脈に使用する時は
かっこで括る必要があります。
> 意外ですが、Pythonでも許されているのです。Pythonの場合
> formal argumentにもできると思う。
あぁ、そういや Python でもできますね。忘れてました。昔は知っていたはず
なんですが、ぜんぜん思い出しませんでした。かわりに ML を思い出しました
が。
--
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)