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

看板Ruby作者 (godfat 真常)時間15年前 (2009/07/27 21:52), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/16 (看更多)
※ 引述《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
文章代碼(AID): #1ARR4UCC (Ruby)
討論串 (同標題文章)
文章代碼(AID): #1ARR4UCC (Ruby)