Re: [連結] 松本行弘: Code 的世界~成為超級程式設 …
※ 引述《Schelfaniel (Schelfaniel)》之銘言:
: 沒想到 godfat 是物件導向信仰者 @@
不是的話,就不會選 ruby 了喔
: Common Lisp Macro : ( 這是取自網頁 )
: (defmacro square-sum2 (x y)
: (let ((first (gensym "FIRST-"))
: (second (gensym "SECOND-"))
: (sum (gensym "SUM-")))
: `(let* ((,first ,x)
: (,second ,y)
: (,sum (+ ,first ,second)))
: (* ,sum ,sum))))
有需要這麼複雜嗎..? 試了一下,這樣也行:
(defmacro square-sum2 (x y)
(let ((sum (gensym "SUM-")))
`(let* ((,sum (+ ,x ,y)))
(* ,sum ,sum))))
甚至連 sum 也拿掉也行:
(defmacro square-sum2 (x y)
`(let* ((sum (+ ,x ,y)))
(* sum sum)))
我是不是搞錯什麼?還是例子太簡單所以看不出來?
: 不過 Common Lisp 可以自訂 Reader Macro,也就是說
下略,看不太懂 @@
我的疑問是,反正 ruby 有 eval, 這樣有什麼做不出來嗎?
def sum_square2 x, y
eval "a = #{x} + #{y}; a * a"
end
這跟上面的 lisp 有何不同?
--
#!/usr/bin/env ruby [露比] /Programming (Kn|N)ight/ 看板《Ruby》
# if a dog nailed extra legs that http://www.ptt.cc/bbs/Ruby/index.html
# walks like an octopus, and Welcome ~Ruby@ptt~
# talks like an octopus, then ◢█◣ http://www.ruby-lang.org/
# we are happy to treat it as █ http://www.ruby-doc.org/
# if it were an octopus. ◥ ◤ http://www.rubyforge.org/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.28.18
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章