Re: [Ruby] 語言缺陷
※ 引述《godfat (godfat 真常)》之銘言:
: 每個語言都會有每個語言的缺陷,
: 因為永遠不會有個萬用語言可以面對所有的問題,
: 除非我們有翻譯米糕!雖然那好像是蒟蒻的樣子…
: anyway, 你覺得 Ruby 有什麼缺陷呢?
: 不管是進化的後遺症,或是後天營養不良,
: 總之有什麼地方有問題?
: 我現在正在翻看這個:
: http://eigenclass.org/hiki.rb?Changes+in+Ruby+1.9
( 這網站是說 1.9 (也就是接下來的 2.0) 會做的改變 )
不過 2.0 不知道還要多久, 好像 2003 年時就有提到 2.0 了
所以先看看就好了 :QQ
話說 Lambda Function(或說 Ruby Block, or Closure) 的問題,
其實可以看看 Common Lisp 的解法的 @_@
(let ((x (gensym)))
`(lambda (,x) (+1 ,x))))
這個類似 Ruby 的 {|x| x+ 1}
但是它表明了 x 的變數名稱是由系統所產生出一個暫用的變數名稱
所以不會和外界所影響....(gensym 表示產生暫用的變數名稱)
Ruby 1.9 版的解法是這個
# {normal args; local variables}
d = 2
a = lambda{|;d| d = 1}
a.call()
d # => 2
在 變數前加一個 ; 表示是 Block local...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.220.34.34
→
09/01 12:44, , 1F
09/01 12:44, 1F
→
09/01 14:08, , 2F
09/01 14:08, 2F
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章