トップページ⇒tech
1001コメント357KB

Ruby 初心者スレッド Part 23

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2008/11/20(木) 04:30:21
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

   【Ruby1.9 は不安定な開発版であり初心者には全く向きません】
   【最新安定版の Ruby1.8.7 の使用をお勧めします】
    ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。
      1.9 の新機能の一部が利用可能なので初学者にお勧めです。
    ※ただし十分安定しているとは言えないので
      プロダクション環境での利用にはお勧めしません。

関連スレやURLは>>2-8あたりを見てください。Ruby on Railsの質問はRailsスレへ。

■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
 ・モジュール名やエラーメッセージでググる
 ・マニュアルで引っかかったクラスの記述を探す http://www.ruby-lang.org/ja/man/
 ・FAQを一応読む http://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。
■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0951デフォルトの名無しさん2008/12/30(火) 17:45:35
regular expression
0952デフォルトの名無しさん2008/12/30(火) 17:58:43
>>950
それは無理矢理だ。
0953デフォルトの名無しさん2008/12/30(火) 22:05:11
http://www.google.co.jp/search?q=global+regular+expression+print
0954デフォルトの名無しさん2008/12/30(火) 22:07:36
そもそも g/RE/p が global regular expression print の略だからなw
0955デフォルトの名無しさん2008/12/30(火) 22:42:59
vi 系エディタだと :g/RE/p のパターンは、常時つかう。
print の p 以外の方が、使用頻度が高い。

:g/RE/y A
y は yank の略、A はバッファー a に追加
:g/RE/d
d は delete の略
:g/RE/s/^/#/
s は substitution の略
RE のある行の行頭に # を挿入
0956デフォルトの名無しさん2008/12/31(水) 01:06:13
>>954
gがglobalの略で、全行選択の意味。
REがRegular Expression
pがprintの略で、表示だ。

それぞれ独立の要素であって、一体としてGlobal Regular Expression Printの
略なわけではない。英語になってないし。
0957デフォルトの名無しさん2008/12/31(水) 01:38:14
>>956
>>953
0958デフォルトの名無しさん2008/12/31(水) 06:35:33
>>957
マニュアルのほうが後付け。
0959デフォルトの名無しさん2008/12/31(水) 07:00:43
RFC (Request for Comments)
一般には「RFC=インターネット世界の標準的な規格書」という認識が広まっているが
RFCは日本語では「コメント募集」の意味であり、もともとは技術仕様を公開し、
それについての意見を広く募集してより良いものにしていく観点から始められたようである。
そもそもインターネットにおける規格を記述する文書に『Request For Comments』、
日本語に訳すと「ご意見お待ちしています」という名前が付けられているのは、
冷静に考えてみるとかなり変な話だ。
最初は「ただのメモ書きや提案」程度の意味合いしか持たなかったRFCだが、
その性質は今もある程度引き継いでいる。
今まで規格として紹介してきたRFCも、正確にはRFCの中でも『STANDARD』として
認められたものであり、決して「RFC=正式な規格書」というわけではない。
むしろRFCとは「インターネットを理解する上で役立つとIETF
(もしくはRFC編集グループ)が認めた文書」程度の意味合いしかない、
と考えた方がよい。
RFCは全て英語で書かれることが必須条件となっているため、
IT業界に籍を置きRFCを読まなければならないような立場になると、
RFCの表現をどう実装すればいいのか頭を悩ませることが少なくない。
そんなときは気分転換がてら、これらのジョークRFCを読んで頭を休ませるとか、
あるいは腕に覚えのある人ならジョークRFCを本当に実装してしまうなんていうのもおもしろいのではないか。
0960デフォルトの名無しさん2008/12/31(水) 07:02:41
Ruby は joke だった
0961デフォルトの名無しさん2008/12/31(水) 10:54:35
jokeと書かれるとJava製の○okeみたいな感じのモノを想像してしまう
0962デフォルトの名無しさん2008/12/31(水) 12:38:09
jperlの作者は、外国から「Javaで書いたPerlなのか?」と
問い合わせを受けたことがあるそうな。
0963デフォルトの名無しさん2008/12/31(水) 13:02:57
和暦(例えば平成20年12月31日)はDate::parseしてもだめ?
結果が2008-12-20になるんです。
年月日の部分を分解して組み立て直すしかないのでしょうか?

明治以降の和暦<->西暦ぐらいならライブラリがあっても良さそうなのですが。
0964デフォルトの名無しさん2008/12/31(水) 13:14:13
>>959
court(法廷)はもともと「囲まれた庭」という意味だから(以下略)
0965デフォルトの名無しさん2008/12/31(水) 13:22:26
>>963
NENGO = { "平成" => 1989 }
m = (/(.+?)(\d{1,2})年(\d{1,2})月(\d{1,2})日/).match "平成20年12月31日"
y = NENGO[m[1]] + m[2].to_i - 1
p [y, m[3], m[4]].join("-")

こんなんでどう?
0966デフォルトの名無しさん2008/12/31(水) 13:26:42
>>963
rubyforge.org/projects/jadtfmt/
ICUのラッパだから裏方の作りは問題ないはず。
0967デフォルトの名無しさん2008/12/31(水) 13:28:16
>>965
NENGO吹いたwwwww
09689662008/12/31(水) 13:35:21
ごめんパースはできないみたい。
0969デフォルトの名無しさん2008/12/31(水) 13:40:29
Java SE6だと、JapaneseImperialCalendar
.NETだと、System.Globalization.JapaneseCalendar
(前者はJRuby、後者はIronRubyで使えるかなー?)

どちらも明治以降の太陽暦しか扱えないので、Rubyでは是非とも
それ以前の元号と太陰暦のサポートを。
0970デフォルトの名無しさん2008/12/31(水) 13:43:51
だれが使うんだよw
09719632008/12/31(水) 13:46:53
>>965サンクスです。
>>966
ぱっとみただけだと西暦->和暦の一方通行だけなのかな?
で自己レスですが,Dateクラスを斜め読みしていたら,
self._parse_jisというクラスメソッドがあった。
MTSHの和暦->西暦だったらパースできるみたいです。

なので「平成年月日」の漢字部分をそれなりに置き換えたあとに
パースすればいいみたい...
(でもそれぐらいなら,はじめから組み込んでくれればいいのだが、こーどのもんだいがあるのかもしれない,,,1.9.1に期待)
0972デフォルトの名無しさん2008/12/31(水) 14:04:43
JapaneseImperialCalendarで遊んでみたら、
明治5年12月3日が1872年12月3日になった。
(明治5年12月2日の翌日は明治6年1月1日なので、1873年1月1日のはず)
JavaのCalendarはこのへん妙に凝ってた気がするんだが……
こういう改暦の境界って扱いがめんどくさそうだな。

0973デフォルトの名無しさん2008/12/31(水) 14:08:02
歴史は後から書き換えるものだしな…。
0974デフォルトの名無しさん2008/12/31(水) 14:29:16
>>962
Javaの影すらなかった時代からあるのにな...
jlessとかjawkとかいっぱいあるのに。外国人の日本認識なんてそんなものか。
0975デフォルトの名無しさん2008/12/31(水) 14:39:20
そりゃ、よその国のローカルなソフトウェア事情なんて普通他国の人間が
知るわけがないだろ

0976デフォルトの名無しさん2008/12/31(水) 14:53:48
DateTime::Format::Japanese使えない? >西暦<->和暦
0977デフォルトの名無しさん2008/12/31(水) 15:08:53
>>961
ジャストタイミングでJRuby作者が、Iokeとかいうのを作ったみたいw
Ioke 0 released | Ola Bini: Programming Language Synchronicity
http://olabini.com/blog/2008/12/ioke-0-released/
0978デフォルトの名無しさん2008/12/31(水) 15:18:56
>>969
ttp://homepage1.nifty.com/gyouseinet/history/nengouichiran.htm
ユリウス暦-グレゴリオ暦の変換とかも必要なのかな
0979デフォルトの名無しさん2008/12/31(水) 17:12:10
本格的にやると死ねそう……
明治以降限定で割り切るのが楽かね。(それでも改暦が1回あるが)
0980デフォルトの名無しさん2008/12/31(水) 18:02:46
南朝と北朝があるけど正統なのはどっちだっけ?
0981デフォルトの名無しさん2008/12/31(水) 18:22:36
>>919 に今ごろ反応
すげくねっといわれても
暗黙の機能の多さの違いとしか

awk "!dup[$0]++ {print}"
perl -ne "print if!$dup{$_}++"
ruby -e "puts readlines.uniq"
もしくは
ruby -ne "BEGIN{$dup=Hash.new 0};print if 2>$dup[$_]+=1"

awkから引き継いだフリップフロップ演算子なんて
ワンライナー以外で使うことがあるのかしら
awk "/^=begin/,/^=end/{print}
perl -ne "print if /^=begin/../^=end/"
ruby -ne "print if /^=begin/../^=end/"
0982デフォルトの名無しさん2008/12/31(水) 18:50:01
何気にperlのがすげくね?
0983デフォルトの名無しさん2008/12/31(水) 22:15:16
ume
0984デフォルトの名無しさん2008/12/31(水) 22:40:55
Ruby リファレンスマニュアルってなんでこんなにも
書きかけの文書が多いの?
http://www.ruby-lang.org/ja/man/html/Ruby_A5EAA5D5A5A1A5ECA5F3A5B9A5DEA5CBA5E5A5A2A5EB.html

本買ってね、ということなの?
0985デフォルトの名無しさん2008/12/31(水) 23:06:43
青基調のこっちが新型
http://doc.loveruby.net/refm/api/view/index

ライブラリの網羅率は、
今年の夏には5割で「来年の夏には終わる」とか言われてたから
たぶん今頃は7割ぐらい?
0986デフォルトの名無しさん2008/12/31(水) 23:25:49
>>984
そう思ったらあなたが書き足せば良いんですよ
っていうスタンス
0987デフォルトの名無しさん2008/12/31(水) 23:54:21
>>986
RWiki重すぎで静的HTMLになっちゃたっんだよねぇ。
0988デフォルトの名無しさん2008/12/31(水) 23:55:52
Rubyの中心にいる人たちはあまりドキュメントに熱心ではないので、
本がどうとかいう以前に、「ソース嫁」と思っている。
0989 【大吉】 2009/01/01(木) 00:15:50
あけおめことよろ!
0990 【大凶】 >>1000に 【564円】 あげます。2009/01/01(木) 00:21:43
あけましておめでとう。
今年もよろしくね!
0991 【大吉】 2009/01/01(木) 00:56:53
あけおめそーす嫁!
0992 【大吉】 2009/01/01(木) 00:57:37
うめ!
0993!omikuzi2009/01/01(木) 01:23:53
test
0994デフォルトの名無しさん2009/01/01(木) 01:29:07
   【Ruby1.9 は不安定な開発版であり初心者には全く向きません】
   【最新安定版の Ruby1.8.7 の使用をお勧めします】
    ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。
      1.9 の新機能の一部が利用可能なので初学者にお勧めです。
    ※ただし十分安定しているとは言えないので
      プロダクション環境での利用にはお勧めしません。
0995デフォルトの名無しさん2009/01/01(木) 01:34:40
いちからRubyを始める初心者向けのRuby入門書は何がおすすめでしょうか?
0996デフォルトの名無しさん2009/01/01(木) 01:50:41
あけおめ
0997デフォルトの名無しさん2009/01/01(木) 01:51:28
>>995
Ruby以外の経験はあるの?
0998デフォルトの名無しさん2009/01/01(木) 01:52:05
ume
0999デフォルトの名無しさん2009/01/01(木) 01:52:33
次スレ↓
1000デフォルトの名無しさん2009/01/01(木) 01:53:07
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。