ここのところruby/ioと格闘していたら少し理解が上がった。
なので以前、書いた「Rをruby/ioで使う。」を焼き直してみたくなった。

#!usr/bin/env ruby

class R_IO
def initialize
@io = IO.popen("R -q --no-save", "r+")
end

def close
@io.puts("q()")
@io.close_write
@io.read
@io.close
end

def eval(cmd)
@io.puts(cmd)
@io.gets("\n")
#return @io.gets("> ")
return @io.gets("\n")
end
end

eval = <<-EOF
sqrt(2)
sqrt(3)
sqrt(5)
EOF

r = R_IO.new
eval.split("\n").each do |e|
puts r.eval(e)
end
r.close
[PR]
# by gaziya | 2011-06-12 17:32