[ruby-list:50044] Re: 異なるProcオブジェクトが同じ構造を持つかどうか確かめたい
From:
Yusuke Endoh <mame@...>
Date:
2015-01-05 12:08:07 UTC
List:
ruby-list #50044
> ありがとうございます!!正しく欲していたものです!!
欲していたものではないかもしれないので、ご注意ください。
環境を無視して ISeq の物理的等価判定をしてるようなので、
例えば同じ定義のクロージャでも
f = ->(x) { x }
g = ->(x) { x }
p ISeq.of(f) == ISeq.of(g) #=> false
という結果になりますし、逆に明らかに異なるクロージャでも
f = ->(x) { ->(y) { x } }
g = f.(1)
h = f.(2)
p ISeq.of(g) == ISeq.of(h) #=> true
という結果になります。
承知の上ならすみません。
2015年1月5日 20:15 Tanaka Kazuki <mail@tanakakazuki.com>:
>> 一般化はできないと思いますが、この例では
>>
>> ISeq = RubyVM::InstructionSequence
>> ISeq.of(v1) == ISeq.of(v2) #=> true
>>
>> になりますね。
>
> ありがとうございます!!正しく欲していたものです!!
>
> 小学生並みの感想ながら RubyVM::InstructionSequence すごいですね.
>
> 後学に生かします.
>
> 田中
> --
> ===============================
> Keio university mathematical sciences
> 田中 和希 Kazuki Tanaka
>
> mail: mail@tanakakazuki.com
> HP: http://gogotanaka.me/
> Blog: http://blog.gogotanaka.me/
> Twitter: @gogo_tanaka
> Facebook: https://www.facebook.com/gogogogotanaka
> ===============================
>
>
>> Date: Mon, 5 Jan 2015 14:08:17 +0900
>> From: nobu@ruby-lang.org
>> To: ruby-list@ruby-lang.org
>> Subject: [ruby-list:50042] Re: 異なるProcオブジェクトが同じ構造を持つかどうか確かめたい
>
>>
>> On 2015/01/05 12:25, Tanaka Kazuki wrote:
>> > 動的に作られた異なるProcオブジェクトが同じ構造を持つかどうか(つまり抽象計算上同一と言えば良いのでしょうか)
>> >
>> > 調べる良いを方法に頭を悩まさせており、皆様のご教授を賜いたくこちらに文書を綴りました.
>> >
>> >
>> > RubyでZコンビネーター遊びをしている時に問題に当たりました.
>> >
>> > https://gist.github.com/gogotanaka/b8c5688863d9c4774cd8
>>
>> 一般化はできないと思いますが、この例では
>>
>> ISeq = RubyVM::InstructionSequence
>> ISeq.of(v1) == ISeq.of(v2) #=> true
>>
>> になりますね。
>>
>> --
>> --- 僕の前にBugはない。
>> --- 僕の後ろにBugはできる。
>> 中田 伸悦