2008年6月19日

閱讀REBOL源碼時的干擾

我發現在閱讀REBOL源碼時,如果參數或修飾字(refinement)所使用的名稱和REBOL常用函數同名時,會造成我相當大的閱讀困擾。例如:

replace: make function! [[
target [series!]
search
replace
/all
/case
/tail
/local save-target len pos value do-break
][
....
]

這裡出現的replace,除了是函數名稱,也是參數;all、case、tail除了是修飾字,更是很常用的REBOL函數。我只要忘了它們是修飾字和參數,一直以函數的方式對待它們,就會造成閱讀源碼時理解力受到干擾。例如:

do-break: unless all [:break]

我一直覺得這裡的程式有錯,一直到很久以後才發現這裡的all不是函數,而是修飾字。

寫這篇blog文章,用來提醒自己和本blog的讀者(if any),閱讀REBOL源碼時,一定要注意這種狀況。

沒有留言: