[#46725] [ANN] win32oleを活用したExcel操縦用ライブラリ exlap.rb — YOSHIIZUMI <t-yoshiizumi@...>
吉泉です。
6 messages
2010/01/04
[#46732] ヒアドキュメント内の変数展開が正常に行われない — ShingoKintaka <kamuycikap@...>
Ruby :1.8.7 (Ubuntu9.10)
12 messages
2010/01/05
[#46733] Re: ヒアドキュメント内の変数展開が正常に行われない
— rubikitch@...
2010/01/06
From: ShingoKintaka <kamuycikap@tulip.ocn.ne.jp>
[#46739] Re: ヒアドキュメント内の変数展開が正常に行われない
— ShingoKintaka <kamuycikap@...>
2010/01/06
るびきちさん、書き込みありがとうございます。
[#46755] [Security] WEBrick has an Escape Sequence Injection vulnerability — Urabe Shyouhei <shyouhei@...>
WEBrick has an Escape Sequence Injection vulnerability
4 messages
2010/01/10
[#46769] WindowsでGUIなRuby実行ファイルの作り方について — ShingoKintaka <kamuycikap@...>
Windows上(XP/Windows7)で開発したWideStudioアプリケーション(Ruby)につ
7 messages
2010/01/14
[#46770] Re: WindowsでGUIなRuby実行ファイルの作り方について
— ShingoKintaka <kamuycikap@...>
2010/01/14
自己レスです。
[#46771] Re: WindowsでGUIなRuby実行ファイルの作り方について
— H. Shimura <shimura-hir@...>
2010/01/14
dllファイルの同梱
[#46772] google-appengine について — 北村寛 <kitayuta@...>
北村と申します。
5 messages
2010/01/14
[#46779] 動的に生成されるメソッドの命名について — Moru <lateau@...>
44Oi44Or44Go55Sz44GX44G+44GZ44CC5pep6YCf44Gn44GZ44GM5LiA44Gk6LOq5ZWP44GV44Gb
5 messages
2010/01/16
[#46800] DLモジュールの使い方 — kouichi_someya@...
染谷と申します。
12 messages
2010/01/20
[#47678] プログラム実行時に「[BUG] Segmentation fault」
— 染谷 康一 <kouichi_someya@...>
2010/12/09
染谷と申します。
[#47681] Re: プログラム実行時に「[BUG] Segmentation fault」
— "U.Nakamura" <usa@...>
2010/12/10
こんにちは、なかむら(う)です。
[#46803] TkTable.rbで"[BUG] Segmentaion fauilt"発生 — 門脇 修司 <kadowaki.shuji@...>
門脇と申します。
9 messages
2010/01/22
[#46805] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生
— Hidetoshi NAGAI <nagai@...>
2010/01/24
永井@知能.九工大です.
[#46807] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生
— 門脇 修司 <kadowaki.shuji@...>
2010/01/25
門脇です。
[#46808] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生
— Hidetoshi NAGAI <nagai@...>
2010/01/25
永井@知能.九工大です.
[#46810] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生
— 門脇 修司 <kadowaki.shuji@...>
2010/01/25
門脇です。
[#46829] Exerbでexe化したiconvを使ったスクリプトでエラーが発生する — Nakamatsu Shinji <snaka.gml@...>
Ruby-listの皆さんこんにちは。
6 messages
2010/01/30
[ruby-list:46822] Re: 整数が格納された二変数を一つの式でスワップするコードのふるまいについて
From:
Yukihiro Matsumoto <matz@...>
Date:
2010-01-28 00:13:38 UTC
List:
ruby-list #46822
まつもと ゆきひろです
In message "Re: [ruby-list:46820] 整数が格納された二変数を一つの式でスワップするコードのふるまいについて"
on Thu, 28 Jan 2010 04:02:37 +0900, m_takao <threewayhandshake@gmail.com> writes:
|昔、整数が格納された二変数を一時変数を使わずにスワップするという
|賢いコードのことを知りました。
|
|a = a ^ b
|b = a ^ b
|a = a ^ b
|
|このコードはCでもPHPでも、JavaでもRubyでもきちんと動きました。
|(例えばa=1, b=2のとき実行するとa=2, b=1となる)
|ところが、これを一つの式にまとめて
|
|a = a ^ (b = (a = a ^ b) ^ b)
|
|と書いたものは、JavaやRubyでは期待したようには動きませんでした。
評価順が異なるからではないでしょうか。Rubyではオペランドは左
から右に評価すると定められています。一方、Cでは評価順序は実装
依存です。
さて、上記のスワップをa,bそれぞれの値を変数を再利用しないで
表記すると、以下のようになります。
a1 = a0 ^ b0
b1 = a1 ^ b0
a2 = a1 ^ b1
同様に、ひとつの式にまとめた形式は
a2 = a0 ^ (b1 = (a1 = a0 ^ b0) ^ b0)
となり、元の形式に戻すと
a1 = a0 ^ b0
b1 = a1 ^ b0
a2 = a0 ^ b1 # ここが違う
です。CやPHPで期待通りに動作したのは、わりと偶然でしょう。
まつもと ゆきひろ /:|)