What have you found for these years?

2011-03-02

lua (1)

原 buzz thread 上上篇的 buzz comments 裡有些大貓的解說。

寫到這裡,我差不多決定放棄 lua, 回頭去看懂 puzzle generator 即可..
簡單地說就是我覺得 lua 真的是很殘廢呀呀呀.. 果然輕薄短小的缺點
就是功能很少,什麼都得自己做 :s 是說如果有人已經做好了,那或許
可以直接拿來用,不過 google 不太容易找到資料。雖然說 lua 或許比
ruby 有名,但大概使用者都太專業了,感覺資料實在很難找...
那就暫時這樣就好了,以後有需要的話再把 lua 拿出來看。

我大概就做到寫好 Array#rotate 這樣,檔案在這: array.lua

不喜歡的幾個點:

0. index 從 1 開始
1. statement 不能是 expression
2. assignment 不能是 expression
3. 一直寫 self 很麻煩
4. array 跟 hash 混在一起,有些地方怪怪的..
我一直以為 array 就是把 index 當 key, 但似乎還是有其他差別。
像是大貓提到 # 是只去算 array 的區塊的長度,會忽略其他區域。

以上幾點大概算比較難克服的,lib 太少是可以自己做,但剛剛查
怎麼複製 table 也覺得有點傻眼。好幾個人說因為對於 table copy 本身
沒有共識,所以 core lib 裡就不提供這個功能。呃,做個簡單版的總行吧..
連要複製都還要寫個迴圈實在覺得有點笨。當然這些都不排除其實還有
簡單的 lib 可用,只是我也懶得繼續查了。ruby 用慣了覺得其他的
(scripting language) 好像都不太好用 :s

其他想提的幾點:

0. syntax 真的很單純簡單,因此 textmate 可以相當完美地做
syntax highlighting. 對照組是 ruby, 動不動就 highlight 錯。
1. 用 . 和 : 區別 function/method call 很有趣,雖然我老是打錯
2. 再怎麼樣都還是比 javascript 好很多

另外跑 luajit -jv 會吃兩個 trace message:

[TRACE --- array.lua:30 -- leaving loop in root trace at array.lua:33]
[TRACE --- array.lua:21 -- leaving loop in root trace at array.lua:22]

應該都是來自 rotate, 那邊是寫得比較暴力,可能要另外寫個 slice,
才能避免過多的 copy 和 loop. 只是懶了,就到這吧。

1 retries:

yen3 said...

連要複製都還要寫個迴圈實在覺得有點笨 <- 我笑了,不知道為什麼 XD

Post a Comment

All texts are licensed under CC Attribution 3.0