作者godfat (godfat 真常)
看板Ruby
标题Re: [闲聊] quine
时间Mon Feb 19 00:03:32 2007
※ 引述《godfat (godfat 真常)》之铭言:
: 日前翻了翻这里
: http://www.nyx.net/~gthompso/quine.htm
: 印出自己的程式
: 把里面的 C 程式改写成 Ruby, 就变成
: s='s=%c%s%c
: printf s, 39, s, 39'
: printf s, 39, s, 39
: 好像没什麽意义
: 翻了一下 wikipedia
: http://en.wikipedia.org/wiki/Quine_(computing)
: or
: http://en.wikipedia.org/wiki/Quine_%28computing%29
: 看到 JavaScript 可以这样做
: function a() { document.write (a + "\na();"); }
: a();
: 忽然想到之前听到的 Ruby2Ruby
: 是否可以靠那东西达到类似的手法…?
: 改天来试试看,Ruby2Ruby 能玩哪些花枝(误)
花枝来了,乌贼走了
稍微试了一下 Ruby2Ruby
#!/usr/bin/ruby
require 'rubygems'
require 'ruby2ruby'
(a = proc {
puts("#!/usr/bin/ruby")
puts
puts("require 'rubygems'")
puts("require 'ruby2ruby'")
puts
print("(a = ")
print(a.to_ruby)
print(").call")
}).call
缺点是我一定得这样排版,因为 to_ruby 出来的排版就是这样
空格用两格,括号不能省略,字串用 "" 夹起来
(但如果他记下我的排版,那才真的可怕了…)
有 Ruby2Ruby 应该可以做很多很好玩的事
不过他内部程式居然用到 RubyInline,
第一次执行时会先呼叫 GCC 做出 .so 档...
也许可以藉此相信他的执行效率有一定的程度
--
#!/usr/bin/ruby [露比] /Programming (Kn|N)ight/ 看板《Ruby》
# if a
dog nailed
extra legs that
http://webptt.com/cn.aspx?n=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