Re: [連結] 松本行弘: Code 的世界~成為超級程式設 …
※ 引述《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
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章