[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 23:56 / Filesize : 233 KB / Number-of Response : 880
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 33



1 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 14:21:25 ]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

★注意★ Ruby 1.9.1 は初心者にはまだ時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。
   (理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に完全対応していないためです。)
 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 を習得すれば将来スムーズに 1.9 系に移行できるでしょう。

関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。

■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
 ・モジュール名やエラーメッセージでググる
 ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/
 ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。

■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

152 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 00:36:49 ]
もとのxの件はオブジェクトと変数の違いではなく
ローカル変数のスコープの問題だねえ。

153 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 00:38:42 ]
>>152
そうですね。本当はそれが知りたかったわけですが・・・。
グローバル変数にすればいいんだけど、なんか気持ち悪い。

154 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 00:41:31 ]
なんか引数で参照渡して、それを書き換えればいいんだよ〜
みたいなのはないんでしょうか?

・・・たぶんないんでしょうね

155 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 00:44:42 ]
引数で渡していいならArrayみたいな内部状態を持つオブジェクトに包んで
渡すくらいかね。


156 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 00:48:32 ]
初心者なんで間違っているかもだけど、参照渡しだから引数に渡された
オブジェクト自体を書き換えることはできるよね?

def method(str) {str.gsub! /a/, '!'}

x = "katakana"
puts x #=> "katakana"
method x
puts x #=> "k!t!k!n!"

157 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 00:48:47 ]
やっぱそれですか。
議論によって問題の所在がはっきりしてきました。
おつきあいありがとうございます。

158 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 00:51:40 ]
>>156
それはたぶん文字の配列わたしてるですね。

159 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 00:53:10 ]
えっ?

160 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 00:53:23 ]
そうだ、eval使おうか(笑)!



161 名前:156 mailto:sage [2009/12/13(日) 00:54:39 ]
>>158
Ruby のStringオブジェクトの内部ってArrayで表現されていたんですか?
知りませんでした。><
C言語みたいですね。

162 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 00:56:25 ]
158ですが、私も初心者なので、フォローお願いします。
普通の言語なら文字列の扱いはそうなってるんじゃないかなぁ?

163 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 01:06:12 ]
何の意味があるか分からない思いつきだけど通りました。
X='12'
def f
X.gsub!('12','2')
end
f()
p eval(X)

164 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 01:22:35 ]
>>162
文字列がイミュータブル(変更不可)な言語は普通にあるよ
Pythonなんかもそう

>>> s = 'abc'
>>> s[0] = 'A'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

上のごちゃっとしたところをまとめると
* 変数はオブジェクトに付けられた矢印(あるいはラベル)。例: a = [1,2,3]
* 変数を通じてオブジェクトを操作することが出来る。例: a[0], a[1]
* Rubyの文字列はミュータブル(変更可能)なので
 変数が指すオブジェクトの中身を書き換えることができる。例: a[1] = 20 # [1,20,3]

165 名前:156 mailto:sage [2009/12/13(日) 01:24:26 ]
>>162
自分なりに調べてみました。

def method(obj)
 obj.object_id
end
str = "katakana"
p str.object_id #=> 69877275538400
p method str #=> 69877275538400

この結果から分かりますが、上記の変数 str と obj は同一のオブジェクトを指しています。
したがって、変数 obj に対して破壊的なメソッド(オブジェクト自体を変更するメソッド)を使うと
str が指しているオブジェクトも同一ですから、objに対して行った操作が反映されている、というわけですね。
あってますか?

あと、Stringオブジェクトの内部表現については詳しくしりません。
Rubyのソースを読んでみればわかると思うのですが、まだそこまでのレベルではないので...
スレ汚し失礼しましたです。

166 名前:164 mailto:sage [2009/12/13(日) 01:27:10 ]
例が文字列じゃなく配列になってた。それぞれ以下に読み替えて

例: s = '123' # sは文字列 '123' を指す
例: s[0], s[1] # sの一文字(バイト)目と二文字目を取得
例: s[1] = '5' # sの一文字目を '5' に変更

>>165
あってるお
内部表現なんて実装次第なんだから
出来ることを正確に把握するほうが大切

167 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 01:32:12 ]
カビの生えた例だけどこんなのも貼っとく

a = [0, 1, 2]
b = a
b[1] = 10

これでaが何になるのかわからなかった人は横着しないで入門書嫁

168 名前:140 mailto:sage [2009/12/13(日) 08:24:28 ]
昨日の者ですが、
結局クラスでラップする感じになるのかなぁ。
下は意図した通りに動きます。

def State(val)
Monad.new(val)
end
class Monad
def initialize(val)
@val=val
end
attr_accessor :val
end
def f(st)
st.val += 1
end

X = State 1
f(X)
p X.val

169 名前:140 mailto:sage [2009/12/13(日) 08:30:00 ]
なるほどRubyって関数型言語だったのか!

170 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 08:33:09 ]
Dir.globが探索するファイル/ディレクトリの条件って何ですか?

i=0
Dir.chdir("C:\\"){Dir.glob('**/*'){i+=1}}
p i
=>150660

dir c:\ /s /b /a|find /c /v ""
=>154483

C:\の全ファイルを選択→プロパティのファイル数+フォルダ数
=>153390

1〜2違うどころではないんだが・・・('A`)



171 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 09:22:12 ]
>>170
DOSのコマンドを知らないから憶測だけど、
"."と".."を含めてる含めてないとか?

172 名前:デフォルトの名無しさん [2009/12/13(日) 09:40:23 ]
>>170
日本語ファイル名が膨らまれているとか

173 名前:デフォルトの名無しさん [2009/12/13(日) 11:00:49 ]
るびまのページいま停止中?

174 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 11:22:02 ]




175 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 11:44:38 ]
p "あ"

とすると、

"\202\240"

8進数で返ってくるのでわかりにくいです。
16進数で帰ってきて欲しいのですが、どうすればいいのでしょうか?

176 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 12:05:56 ]
String#inspect の定義を変更すれば良い。
class String; def inspect; "\""+ self.each_byte.map{|c| "\\x%02x" % c }.join + "\""; end; end

177 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 12:15:41 ]
0x20...0x80はそのままにした方が目に優しそうだ
あと?\と?"は別扱いでとか考え出したら面倒くせええ

178 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 12:17:32 ]
>>176
それ、他のオブジェクトをinspectするときに影響が出ちゃわない?

179 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 13:03:51 ]
8進表記されてるのだけ、16進に直すのはどう?

class String
 alias _inspect inspect

 def inspect
  self._inspect.gsub(/\\(\d+)/){ "\\x{%02x}" % $1.oct }
 end
end

180 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 13:06:37 ]
文字列を16進表記にする関数的メソッドを定義するべきだと思うなあ



181 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 13:40:29 ]
直前の式の返り血が入ってる組み込み変数とかってないですか?
Rubyを関数電卓代わりに使いたいんですけど

182 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 13:44:29 ]
>>181
irb でよければ _ だと思う

183 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 13:44:54 ]
>>181
irb

irb> 1+2
3
irb> _ +4
7

まあ返り値ならなんでもいいんだけど

irb> Time.now
Sun Dec 13 13:40:19 +0900 2009
irb> _.year
2009

184 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 13:48:02 ]
ありがとうございます
できればirbじゃなくても使いたいんですが無いですか

185 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 13:52:21 ]
関数の戻り値は最後の参照みてるんだし
@かなにかに保持してくれるといいと祈り続けて早10年

186 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 14:08:15 ]
>>179
俺もそれ考えたけど"\\1000"とかで困る

187 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 15:24:26 ]
>>180
こうするのが一般的?

p "あ".unpack("H*")

188 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 18:12:58 ]
PHPのcall_user_funcにあたる機能はRubyでも実現できますか?
実行時に呼び出すメソッドを切り替えたいのです。

189 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 18:15:34 ]
>>188
send, evalなど

190 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 18:24:48 ]
>>188
ありがとうございます。



191 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 18:25:33 ]
間違えた…>>189でした

192 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 18:49:28 ]
異なる文字コードの文字列を同時に出力するとかじゃない限り
適切に漢字コードを指定しておけばちゃんと日本語表示されるんじゃないの?
$KCODE = 'S'
p "あ"
> "あ"

文字じゃないバイナリ列とか表示させるときに16進文字列がいいのなら
そういう出力メソッドを作るなりすれば


193 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 19:07:54 ]
1.9 なら encoding を文字列が持ってるからできるが、1.8 なら無理だね。
あと $KCODE は 1.9 じゃ廃止だ


194 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 01:00:47 ]
module Hoge
def f1 end
def f2 end
・・・ってかんじでメソッドがたくさんあったときに
module_function :f1,:f2,...
って全部書くしか、外からアクセスする方法はないでしょうか?
end

195 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 01:05:21 ]
include Hoge で f1 や f2 を取り込めるよ

196 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 01:12:46 ]
名前空間は汚染したくないので
Hoge::f1
というアクセスだけ許したいのですが・・・
いちいち書くのは保守が面倒だと思ったので。

いま考えてるのは
module_function self.methods.join(' ') #未完成
みたいな怪しい方法です。

197 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 01:20:55 ]
module M
def m1; "m1"; end
extend M
end
M.m1 #=> "m1"

198 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 01:22:36 ]
どんぴしゃです!
ありがとうございます。

199 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 05:51:45 ]
メイン関数は書いた方が良いのでしょうか?

200 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 06:07:46 ]
>>198
リファレンスより
If used with no arguments,
subsequently defined methods become module functions.

モジュール定義の頭に module_function と引数なしで書いておけば
以後に定義するメソッドにはすべて module_function が適用される。

public, private とかと同じだよ。



201 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 06:28:54 ]
>>199
メイン関数って
スクリプトを実行した時に処理系が最初に呼び出すメソッド、という意味?

そういう意味なら、書けない、でFA
そんな取り決めないし

202 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 07:36:02 ]
>>199
def main() しとけばRubyがエントリポイントとして呼んでくれる、とかいうことはないよ
ただ if __FILE__ == $0 ... って常套句を使って少し似たようなことはできる

203 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 08:32:24 ]
>>199
ruby -e 'p self'

204 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 08:53:07 ]
俺最初なんとなくmainてメソッド書いて
if __FILE__ == $0
main
end
って書いてたな

205 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 11:18:57 ]
>>200
これでもいいなぁ。
ttp://ruby-doc.org/core/classes/Module.html#M001642
ですね。

初心者はドキュメントのどこを見ればいいかも分からないので、とても助かります。

206 名前:デフォルトの名無しさん [2009/12/14(月) 11:43:32 ]
>>199
いろんなソース読んだ限り、
Rubyではこんな感じで書いている人が多い。俺も習ってる

class Application
  def initialize
  end
  def run
    # ここにメイン処理
  end
end

if __FILE__ == $0
  Application.new.run
end

207 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 13:15:18 ]
待て、$0って廃止予定じゃなかったか

208 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 13:29:31 ]
心配なら$PROGRAM_NAMEを使っておけ。


209 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 13:30:08 ]
あと10年は1.8使い続けるから無問題

210 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 13:33:57 ]
まあ、$0 が動かなくなる頃にはそのスクリプト本体もどっか手入れしないと動作しないとは思う
そのときにその人に直してもらうことにして $0 は使ってもよし
$PROGRAM_NAME はバージョンによらず使えるんだっけ?



211 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 13:38:35 ]
質問が有ります。

引数があれば引数で指定したファイルに
引数がなければ標準出力(もしくはエラー出力)に文字列を出したい場合はどのように書いたものでしょうか?

212 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 13:46:34 ]
そのまんま if とかで書けばいいと思うよ!

213 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 13:48:20 ]
if (ARGV[0])
$stdout = File.open ARGV[0]
end

こんな感じニカ ?

214 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 13:51:15 ]
こんな感じか
if ARGV.length > 0
   f = open(ARGV[0], "w")
else
   f = $stdout
end
f.write "hello"


215 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 13:52:13 ]
>>211
def output
 if filename = ARGV[0]
  File.open(filename, "w"){|f| yield f }
 else
  yield $stdout
 end
end
output{|io| io.write "a"}

closeめんどくせえ

216 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 13:55:43 ]
> closeめんどくせえ
うむ
$stdout.close がIOError で拒否られたときは軽く眩暈がした

217 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 17:25:48 ]
>>211
個々のプログラムでそういうことをするより
シェルのリダイレクトやパイプを使いなさいと言いたいのだが

出力先をプログラムの引数として受け取らなければならない理由はなんだろう?

218 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 18:09:37 ]
STDOUT にログ出力をするタイプのプログラムはたいてい引数指定
たとえば wget

219 名前:211 mailto:sage [2009/12/14(月) 19:36:53 ]
>>212-215
ありがとうございます、ありがとうございます
いろいろ方法ありますね。

>>217
事の発端は、最初は標準出力に出してリダイレクト(?でしたっけ)でファイルに書いていたのですが、
ファイルには出したくないBenchmarkとかで計測した結果も表示したくなってそうすると、
どうしたものかって感じになりました。

こういう時って計測結果などはエラーに出せばいいもんですかね?エラーに出していいものかどうか。

>>218
wgetは引数でファイル指定でしたっけ

220 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 20:14:48 ]
wget -O



221 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 20:19:22 ]
質問です。

時間の計算するにはどのクラスを使えばいいでしょうか?
具体的には時間の差分を加算したりしたいのです。

例えば、
elapsed_time += Time.local(2008,12,14,1,50,10) - Time.local(2008,12,10,1,50,10)
のような感じ(実際にはTime.localの中身は可変)

elapsed_timeをTimeにする場合だと初期化にTime.at(0)しても Thu Jan 01 09:00:00 0900 1970 になったり、
0からの時間を考えられていないようなのです。

222 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 20:24:17 ]
>>221
基本的には「ない」
61s が 1m1s になるような、秒数のみを表すクラスというようなのは標準では存在しない

223 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 20:25:23 ]
>>221
Time.at(0).to_i

224 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 20:26:07 ]
>>222
そういうことか、>>223は忘れて

225 名前:221 mailto:sage [2009/12/14(月) 20:35:18 ]
ありがとうです

ないですかー。
何が困るかというと、加算した差分の時間を例えば書式で出力するときにstrftimeみたいなのを自前で書かないといけないってことですよね。

誰かそういうの作ってないか探してみたんですがどうも無いようで・・・。
active_supportとかの日付の拡張あたりでなんとかならないもんですかね。

226 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 20:49:16 ]
time = 100000
sec = time % 60
min = (time / 60) % 60
hour = (time / (60 * 60)) % 24
day = time / (24 * 60 * 60)
puts "%dday %d:%d:%d" % [day, hour, min, sec]

こんなんでいいか?

227 名前:221 mailto:sage [2009/12/14(月) 21:01:02 ]
>>226
ずばりそのまま書いてくださってありがとうさんです。

使わせていだきます。
ActiveSupport使ってもこんな感じですか。かわらないやw

time = 100000
sec = time % 60
min = (time / 1.minute) % 60
hour = (time / 1.hour) % 24
day = time / 1.day
puts "%dday %d:%d:%d" % [day, hour, min, sec]

228 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 22:30:38 ]
二年ほど前にdevでTimeSpanというクラスが提案されたことはあるみたいだねー。
立ち消えしてるのかな、これは。


229 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 22:34:40 ]
.NETからそのままいろんなクラスパクってくりゃいいのに

230 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 22:36:53 ]
やだあんな使いにくいAPI
.NET好きな人はIronRuby使ったらいい



231 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 00:52:12 ]
数値積分や微分できるようなライブラリとかってないですか?
Rubyを関数電卓代わりに使いたいんですけど

232 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 00:58:10 ]
パッチレベル上がったのにmingwでmake通らん

233 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 01:01:41 ]
>>231
よくわからんけど「Ruby 数値積分 微分」でぐぐってみた
ttp://jp.rubyist.net/magazine/?0006-RLR
こっちは結構すごそうだぞ
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/39950

234 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 01:01:55 ]
GSL(GNU Scientific Library)のRubyバインドがあるようだ。
詳しくは見ていないけど、数値積分や微分はあるみたい。
ただし、最後のリリースが約2年前というのが気掛かり。
十分枯れているのだろうけれど、新しめのRubyで動くかは不明。

ところで、本格的な数式処理なら、Maximaとか使ったほうがいいんじゃない?


235 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 01:05:33 ]
かぶりんこ。


236 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 01:43:08 ]
ありがとうございます
導入めんどくさそうですけど頑張ってみます

237 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 02:03:40 ]
数値積分や微分できるような関数電卓を持っていたら、それを使う。
でなければ、カシオの計算センターとか。
自前のコードからコールしたいなら、ついでにそっちも自分で書いてしまう。
てのは、いかがでしょう。

238 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 06:35:31 ]
>>219
> ファイルには出したくないBenchmarkとかで計測した結果も表示したくなって

標準ライブラリの Logger を使ってみるというのは?
jp.rubyist.net/magazine/?0008-BundledLibraries

239 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 09:20:54 ]
いわゆる数値計算には向かないよね、Ruby

240 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 09:53:38 ]
しかし、「5分で作って5秒で実行させる」ような、「計算機なんだから計算できてもいいんじゃね」という
カジュアルなデータ計算をさせることが期待されるプログラミング言語のトップグループにいることは間違いない
専門数値計算ソフトやC(やJava)を持ち出さなくてもいい程度の計算なら、もっと気楽にできてもいい
高校や大学1年教養の宿題をうっかり解けてしまうような、そんな用途があってもいいはず



241 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 10:06:28 ]
そういう用途ならあるげぶらーじゃね

242 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 10:09:15 ]
Rでもいいしますまてぃか覚えるのでもいいしいっそExcelでも充分使える範囲である可能性も高いな

243 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 10:20:55 ]
カタカナでおk

244 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 10:28:35 ]
アールやエクセルってなんか変だろ

245 名前:221 mailto:sage [2009/12/15(火) 15:52:28 ]
>>238
ああ、その手もありました!その名のとおりログのこりますしLoggerいいですねw

246 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 15:56:00 ]
数値計算したいんなら構文的にPython+numpyのほうがいいよ。Rubyには不向き。

247 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 18:38:35 ]
>>221
ワンライナーで時間の計算をする時に24時間以内なら
ruby -rtime -e "a=Time.parse('09:08:20')-Time.parse('01:40:02');puts Time.at(a).utc.strftime('%H:%M:%S')"
とかしたりしますな


248 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 18:47:01 ]
ていうか、やろうと思えば結構できるんだよ
でも自己責任の域を出れない

249 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 18:54:35 ]
name=gets
puts "私は#{name}です"

nameに日本語を入力するとエラーが出てしまいます
C:/My Documents/g/Ruby/test.rb:4:in `<main>': incompatible character encodings: ASCII-8BIT and
Windows-31J (Encoding::CompatibilityError)
これはどういったエラーなんでしょうか?

250 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:03:50 ]
>>249
初心者は Ruby1.9 使うなってこれだけ言われてるのになんでわからんのだエラー



251 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:08:17 ]
それってスクリプトつーか内部文字列がWindows-31Jで標準入力がASCII-8BITってこと?
Windows-31Jがロードできたら標準入力もそっち使うようになってなかったっけ
どういうときにそんなことになりえるのか知りたい、誰か教えて

252 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 19:08:20 ]
スレタイに【1.9】 【使うな】っていれとけよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<233KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef