顯示具有 Screenshot 標籤的文章。 顯示所有文章
顯示具有 Screenshot 標籤的文章。 顯示所有文章

2008年5月30日

使用Console(二)


REBOL預計會有兩個Console,目前已完成的只有文字模式的DevStdIO,而圖形模式的DevConsole短時間之內是不會出現的,看樣子我們得使用DevStdIO好一段時間。「使用Console」 這篇文章有介紹一些用法。除此之外,如果你要使用「複製 / 貼上」功能的話,你必須啟用「快速編輯模式」和「插入模式」。作法如下:

  1. 用滑鼠右鍵點選REBOL Console視窗的標題列,叫出系統選單。
  2. 從選單中選取「內容」。你會看到附圖的視窗。
  3. 將兩個編輯選項(「快速編輯模式」和「插入模式」)都選取。然後按下「確定」。

只要有上面的設定,你就可以用滑鼠選取文字,用滑鼠右鍵複製反白區的文字到剪貼簿;在沒有反白區的情況下,按下滑鼠右鍵可以將剪貼簿的文字貼到Console上。


2008年3月28日

REBOL 3.0進度


在REBOL公司的網站改版之前,REBOL 3.0有一個暫時性的網址。官方最新的消息都會公布在這裡。


根據該網站的說明,最近2.x版的維護已經告一個段落,重點再度回到REBOL 3.0。AltME社群內部的記錄顯示,REBOL公司已經修正我之前提出的某些Bug,也將Unicode核心版本釋出給所有的Alpha成員。另外REBOL公司也製作一套自動Test Case產生器,來幫忙找出Bug。

2008年3月10日

各種函數的區別



REBOL的函數(function)有7種,分別是:
  1. Function!
  2. Closure!
  3. Rebcode!
  4. Native!
  5. Action!
  6. Op!
  7. Routine!

屬於Function!、Closure!、Rebcode!型別的函數,都可以利用source函數來觀看其源碼(source code)。例如,在REBOL console中輸入「source what」,就可以看what的源碼:

屬於Native!、Action!、Op!型別的函數,都「無法」利用source函數來觀看其源碼,因為它們的程式是用C語言寫的,經過編譯。至於Routine!,是用來連接到外部動態連結程式庫的函數,REBOL 3.0尚未決定是否要支援Routine!。

Native!、Action!、Op!都是REBOL系統內部內建的函數,我們無法在REBOL程式中自行定義這些函數。Routine!只是用來和外部的程式做連結,我們也無法在REBOL程式中定義它的邏輯。我們在REBOL程式中,能夠自行定義的函數,只有Function!、Closure!、Rebcode!。

一般來說,我們寫REBOL程式時,定義的函數是Function!。如果希望執行過後,函數內的context能夠保留,就不要使用Function!,改用Closure!,缺點是效率會比較差。如果希望函數的執行速度提高,就不要使用Function!,改用Rebcode!,但是Rebcode!不是使用REBOL語言,而是使用Rebcode方言,相當於REBOL虛擬機器的組合語言。使用Rebcode!的缺點是,程式比較不容易讀寫(因為Rebcode方言比REBOL語言更低階的緣故)。

Native!和Action!的差別只會影響REBOL內部,和我們沒有關係,所以可以不用理會它們的差異。Op!比較特別的地方在於,它是中序的(infix),而其他六種函數都是前序的(prefix)。

閱讀REBOL文件或書籍時,請注意。當提到「函數」時,有可能泛指所有的七種函數,也有可能單指function!,必須利用前後文來判斷為何者。如果提到mezz,則一定指function!。如果提到「原生函數」,有可能泛指native!、action!、op!,也有可能單指native!。

使用Windows Console


REBOL預計會有兩個Console,一個是文字模式的DevStdIO,一個是圖形模式的DevConsole。目前已完成的只有DevStdIO。在Windows作業系統上,DevStdIO也就是Windows console。因此,你需要知道Windows Console的基本用法,整理如下:
  • 左右方向鍵:在目前的命令列左右移動編輯游標。
  • Ctrl+左右方向鍵:按住Ctrl鍵不放開,再按下向左方向鍵,或向右方向鍵,在目前的命令列左右移動編輯游標,一次移動一個word,而不是一個字元。
  • Home:將編輯游標移動到目前命令列的開頭。
  • End:將編輯游標移動到目前命令列的尾端。
  • 上下方向鍵:調出歷史命令(之前輸入過的命令)。
  • 插入(Ins)鍵:在字元插入與字元覆蓋(overwrite)模式之間切換。
  • 刪除(Del)鍵:刪除游標後的字元。
  • 倒退(Backspace)鍵:刪除游標前的字元。
  • F7:在文字視窗內,躍出一個「命令歷史清單視窗」(如上圖所示),然後使用上下鍵選取命令,最後按下Enter執行命令。除了F7,我發現F2、F3、F4、F9也有特殊功能。
  • Ctrl+空白鍵:中文輸入切換。
  • 用滑鼠拖檔案進來:可以輸入該檔案的全名。

可惜的是目前還不能使用tab,進行補完(completion)。

想要離開此console,使用q或quit函數即可,如下所示:

>> quit

2008年3月6日

用REBOL 3.0列出Unicode字元表

REBOL 3.0 支援Unicode,而且是連console都支援Unicode,你可以在console中輸入或輸出任何Unicode字元,只要你有適當的字型,就不會有問題。

下面是一個簡短的範例,將0x0000-0xFFFF的全部Unicode列出,程式很簡單,所以我就不說明了:

for i 0 4095 1 [ 
prin rejoin [ newline to-hex/size i 3 "0 " ]
for j 0 15 1 [
prin [ to-char to-hex/size i * 16 + j 4 " " ]
]
wait .01
]