我想看看如果一個具有相同參數的proc調用每次都會得到相同的結果。用參數調用的pureproc
是免費的,所以每次我打電話pureproc(1,1)
時,我都會得到相同的結果。使用參數調用的參數dirtyproc
被綁定在其環境中,因此即使它與pureproc
具有相同的參數,其輸出將取決於環境。如何確定一個proc調用是否仍然空閒或綁定?
ruby-1.9.2-p136 :001 > envx = 1 => 1 ruby-1.9.2-p136 :003 > pureproc = Proc.new{ |a,b| a+b } => # ruby-1.9.2-p136 :004 > dirtyproc = Proc.new{ |a,b| a+b+envx }
我如何編程方式確定一個名爲PROC或方法是否是免費的,只被綁定在都必須被傳遞的變量定義?任何關於綁定,局部變量等的解釋都會受到歡迎。
我有一種感覺,這相當於解決停機問題,但我無法證明它。 –
大聲笑 - 我沒有在尋找一個解決問題的方法 - 只是關於什麼Ruby知道關於Procs的一些信息,只要他們指的是變量的範圍。 –