What have you found for these years?

2009-08-15

scala 的 bin

scala 有些東西滿方便的...
scalac 類似 javac, 不過 scala 比 java 強大多了。

首先 scala 不加參數,是 interactive mode
這點比較類似的是 ghci !!!!
因為 :r 可以 reload, :l 可以 load, :q 可以離開...

我完全沒看手冊 XDDDD
因為 ghci 用習慣了,所以會下意識直接用,
發現可以用才愣住 XD
不過看了說明才發現 :r 是 replay,
所以不是像 ghci 可以 reload.

比 ghci 方便的是,在 ghci 裡沒辦法像在一般檔案裡編輯。
比方說需要 let something = another thing
也不能寫 something :: a -> a -> a
只是沒有 :t 可以檢查 type 滿可惜的。

而 scala 如果加一個檔案參數,可以當成 interpreter 用。
這個好處當然是,要跑 java 需要先 javac, 然後找到你要的
class, 再下 java 實在是非常麻煩!
而且一堆新手搞不清楚為什麼是這樣寫:

> javac Test.java
> java Test

為什麼一個要副檔名,一個不要?用 scala 沒有這個困擾。
當然用 scalac 的話就一樣了,因為也是產生 .class 檔。

scala 的 interactive mode 也非常好用,除了 readline
支援正常(一堆都怪怪的,當然這多半來自電腦設定問題...),
自動替所有的 term 取名也很方便,例如 res0
新的值也可以隨時取代舊的值,而不是一般情況下 immutable.
因此可以在裡面做實驗,不用重新 compile 或是整個重讀。

如果常常需要 compile 呢?有 fsc 會自動產生一個 daemon,
以後丟檔案給 fsc compile 則把檔案丟給 daemon,
不用重新跑 jvm, 當然也不用重新跑 scala compile...

這我之前在用 perl 的 exiftool 時,就想這麼做..
有看到討論說本來有可能會做,後來決定不做了。
原因大概是誰都能自己做,沒必要讓官方支援。
問題是我不會寫 perl 啊 XDDDDD
幫忙做一下會怎麼樣.....

總之 compiler + interpreter + interactive mode,
真的是很方便。像 c++ 這點就是麻煩到了極點...

scala 很多地方都是寫在哪裡都可以,不用查書,
直覺寫下去就對了。這點實在是相當親切。
當然前提是要有那個「直覺」就是了,初學者通常不會有直覺...
不然就是僅適用的自己的直覺之類的 XD

0 retries:

Post a Comment

All texts are licensed under CC Attribution 3.0