• #10 楼 @ruby_sjf 现在SegmentFault 正在招 PHP 工程师 你可以试着投下简历。

  • #24 楼 @zw963 感谢指出。我原先的理解是错误的,Matz 的意思是不能绑两个或两个以上的块。

  • @zw963 這一句是 Matz 書裏的,我自己的從下一段纔開始。只能有一個參數,結合上下文應該不會誤解吧。例如樓主的例子, { |user| user.id > 33 },塊只能收user一個參數,不能另外傳參數給它。

  • 《七周七語言》裏訪談了 Matz,Matz 被問到最喜歡 Ruby 什麼的時候,就說最喜歡 block。既然這裏是瞎扯淡,我就把當時的讀書筆記抄一下:


    Matz: 我喜歡它寓編程於樂的方式。說到某個具體的技術點,我最喜歡的是“代碼塊”(block)。代碼塊即是一種易於控制的高階函數,也爲 DSL 及其他特性的實現提供了極大的靈活性。(p. 9) 這裏 Matz 說謊了。block 很高階函數,但不是函數。

    ->(x){x+3}.call 3 
    

    返回 6. 而

    {|x| x + 3}.call 3 
    

    將導致syntax error. Ruby 的祖先 Smalltalk 中,block倒是可以接受消息的:

    [:x | x + 3] value: 3 
    

    返回 6. 所以 Ruby 的 block 是個奇怪的東西。縱向來說,它很像 Smalltalk 的 block,橫向來說,它很像匿名函數。但是事實上,它和兩者都不一樣。Ruby 的口號是「Principle of Least Surprise」,但是這個 block 卻讓我吃驚。 語意上塊讓人迷惑,語法上也不好。塊有兩種表達法:大括號或者 do...end,問題在於優先級是不同的。例如f x {|x| puts x}f x do |x| puts x end是不一樣的,前者等於f(x {...}),後者等於f(x) do...end。初學的時候很容易搞混。 Matz 在他寫的《まつもとゆきひろコードの世界 : スーパー・プログラマになる 14 の思考法》一書中提到了設計塊的緣由:

    1. 減少對象的生成數,因爲早期 Ruby 生成閉包對象的代價很高。
    2. 外觀上看起來像控制結構。 Matz 還提到,傾向於使用高階函數的 OCaml 的 2239 個庫函數,沒用函數參數的佔 87.2%,用一個函數參數的佔 12.1%,也就是有兩個以上的不到 1%。因此,大多數情況下,只能有一個參數的塊也夠用了。 所以說,塊就是一個語法糖,讓習慣過程式編程的程序員可以使用類似高階函數的東西(同時讓 Smalltalk 和 Lisp 的來客大吃一驚)。
  • http://ruby-china.org/wiki/ruby-meta

    Ruby 和元编程的故事 - 第 1 回:色色空空,万物皆为对象:

    Ruby 和元编程的故事 - 第 0 回:欲练神功,必先自废武功

    0 和 1 反了

  • http://ruby-china.org/wiki/gems <-- 「来自 Twitter 的 Bootstrap,是一套完成的前台 CSS 框架。」s/成/整/

    「采集数据是我们需要解析复杂的 HTML 结构」s/是/时/

    「它都很很好的处理」 <-- s/很/能/

    「那你就用大吧」 <-- s/大/它/

    「不够某些项目可能不起效果」 <-- s/够/过/

    rolify Very simple Roles library without any authorization enforcement supporting scope on resource object.

    这个没翻译,尝试翻了下:

    一个非常简单的角色设定模块,不强制要求认证,支持资源对象范围。

  • 仅对企业,3 个月期限,诱惑不大呀……

  • wiki 每个人都可以编辑么?我没法编辑呀。 http://ruby-china.org/wiki/rvm-guide 《-- 这里「这里所有的命令都是再用户权限下操作的」,s/再/在/

  • RubyConfChina 2013 幻灯片汇集 at 2013年11月22日

    http://segmentfault.com/a/1190000000340567 #70 楼 @chunlea 改成「Dropbox 链接(非全部)作为备选方案。」了

  • RubyConfChina 2013 幻灯片汇集 at 2013年11月21日

    s/theRuby/the Ruby/

    搬到了 segmentfault 上,整理了下版式 http://segmentfault.com/a/1190000000340567