Re: [連結] 松本行弘: Code 的世界~成為超級程式設 …

看板Ruby作者 (godfat 真常)時間15年前 (2009/07/28 03:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/16 (看更多)
※ 引述《Schelfaniel (Schelfaniel)》之銘言: : 這個寫法應該沒什咩問題, : 原本它把 x y 重新 bind 應該是習慣, : 這樣比較安全。 我猜,因為 macro 展開可能會碰到,例如 global 的 name? : 總之就是改變 Reader 的型態啦。 : 像 : Common Lisp 的 正常語法是 (print (+ 1 2)) : Reader Macro 可以做到 (println #I[1+2+3+4+5]) : 之前還看過內含 ASM 語法的 :QQ : 假設如下 : #A( : mov ax, 10h : ret : ) 如果像是這樣呢? ASM(%q{ mov ax, 10h ret }) 這樣也可以是合法的 ruby syntax. 也就是說 ASM 裡面會需要一個 assembly 的 parser. 用 lisp 應該也是類似的作法? vector-map-transformer 我看不太懂 @@ : 這個是 Function 不是 Macro 呀, : Macro 比較像 inline 或 #define 也,如果又 Function 又 Eval, : 不就達不到原本 Macro 要求的速度性了?? macro 的速度?你是指先展開再 compile 嗎? 如果是這樣的話,ruby 好像真的就沒有了.. 想像一下,或許可以這樣寫: defmacro :square_sum2 do |x, y| "a = #{x} + #{y}; a * a" end square_sum2(5, 3) 這個由另一個 preprocessor 去跑,再把這 compile 成 ruby, 再把他丟給 ruby 去跑。好像可以試試看用起來如何... -- Hear me exalted spirits. Hear me, be you gods or devils, ye who hold dominion here: I am a wizard without a home. I am a wonderer seeking refuge. Sacrifice -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.28.18
文章代碼(AID): #1ARW2AXX (Ruby)
討論串 (同標題文章)
文章代碼(AID): #1ARW2AXX (Ruby)