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


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

【Perl,PHP】LLバトルロワイヤル7【Ruby,Python】



1 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 11:03:24 ]
最強のLL=軽量プログラム言語は、どれよ?

エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・
さあ、死ぬまで語りやがれ!!!

■LLとは?
軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、
コードの作成や修正が容易と見なされるプログラミング言語のことを指す。

ここでいう「軽さ」はプログラマの負担の軽重を指し、
実行速度に優れているという意味ではない。

現在の水準では
・インタプリタ
・動的型
・正規表現
・関数オブジェクト
などを利用できるものがLLと呼ばれることが多い。(Wikipediaより)

■過去スレ
【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】
pc12.2ch.net/test/read.cgi/tech/1244166510/
【Perl,PHP】LLバトルロワイヤル5【Ruby,Python】
pc12.2ch.net/test/read.cgi/tech/1238720336/
【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】
pc12.2ch.net/test/read.cgi/tech/1234635513/
【Perl,PHP】LLバトルロワイヤル3【Ruby,Python】
pc11.2ch.net/test/read.cgi/tech/1215319832/
【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
pc11.2ch.net/test/read.cgi/tech/1209289408/
【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
pc11.2ch.net/test/read.cgi/tech/1188997302/

77 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 05:55:15 ]
プログラマーって見栄え悪いのばっかだな。

78 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 06:00:38 ]
見栄えで稼ぐ商売以外は似たり寄ったりだよ。

79 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 12:14:20 ]
>77
運動不足が職業病だからな。

80 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 12:46:29 ]
まっつんはちょっと痩せればそれなりにダンディになるとは思うが。

81 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 13:31:14 ]
全員、顎髭を伸ばせば、かっこがつくよ。

82 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 13:50:10 ]
They should be skin head.

83 名前:デフォルトの名無しさん [2009/07/29(水) 19:12:58 ]
Python 3.1からifとかforとかけっこう変わるんだね。
修正がめんどい orz



84 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 20:59:40 ]
coreblog.org/ats/statements-to-expressions-python-31
このエープリルフールを真に受けちゃった人ですか

85 名前:83 [2009/07/30(木) 01:26:38 ]
>>84
変わらないの?良かったぁ (;´Д`)



86 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:31:23 ]
しかし、3がリリースされた直後に3.1を四月馬鹿ネタにするってのもなんかセンスが微妙だな
Python 4とかなら微笑ましいんだが。
Pythonってそんなにバージョンアップしないもんなの?
Perl6がリリースされた後でPerl 6.2の話題とか、多分普通に信じるぞ。

87 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 03:32:19 ]
Pythonのメジャーバージョンは1、2、3、3.1、3.11、3.12、3.13、3.14、3.141と増えていくからな

88 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 03:34:48 ]
クヌース先生の美学だよなあ……

89 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 13:13:54 ]
>>87
最近の小学生は3と聞いたけど

90 名前:デフォルトの名無しさん [2009/07/30(木) 13:39:23 ]
>>89
それ聞きまちがい


91 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 15:00:19 ]
ttp://ja.wikipedia.org/wiki/円周率は3

92 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 00:01:38 ]
エイプリルフールネタを一見それとはわからない状態で
いつまでもWeb上に残しておくなんて、はっきり言って悪だろ。
それでwebなんちゃらなんて会社の代取とか笑えねーって。

93 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 00:39:36 ]
日付みればわかるだろ。アホか

94 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 01:03:21 ]
実際、真に受けてるやつがいるだろ。アホか

95 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 01:08:02 ]
ひとりのアホの面倒をみるためにみんなが犠牲にならなければならないのかよ



96 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 08:58:40 ]
>>95
犠牲て。

ネットにデマを流すときはそれなりの
配慮があってしかるべき。jk



97 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 11:54:13 ]
4/1のエントリって時点で、それなりの配慮はしてるわな。

98 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 18:47:55 ]
4/1に書かれた記事は全て疑わないといけないのかよ

99 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 19:00:29 ]
とうぜんだろ

100 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 21:20:58 ]
どっかのバカがやってるならともかく、
プロフィールにそれなりの肩書き書いておいて
あんな感じじゃ、いろいろ神経疑われるわなw

101 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:03:28 ]
Pythonian: モンティパイソン精神なのでそんなの余裕で笑ってスルー
Rubist: エープリルフールネタなんだからあーたらこーたら
Perler: ネタを見逃して話題に乗れない

102 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 22:13:16 ]
>>101
あ、それいいえてミョー

103 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 23:20:35 ]
>>101
いや、きっとdankogaiなら、
dankogaiならネタを見逃すはずがない。

104 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 23:34:11 ]
>>103
断固GUYって誰?

105 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 23:34:33 ]
LLTVまで残り1ヶ月を切りました。

盛り上がって参りましょう!



106 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 06:20:40 ]
すみません。

ところで僕は中学生のころ、いじめられっこでした。
一番ひどくいじめられた放課後、先生が見るに見かねてとめてくれて
家の帰りもずっといっしょでした。そのとき、川原で先生と一休みしたんですが
先生がこんなことをいっていました。

「人間ってのはひどいもんだ。
こんな鼻くそより汚い。」

私はいまだに鼻くそより汚いという比喩がうまく理解できませんが、
そんな比喩にまで使われた鼻くそをいまだに食べています。私はRubyプログラマーです。

107 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 15:45:52 ]
そのコピペなんかいみあんの?


108 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 18:49:14 ]
例えばこれを実行すると結果が何になるか、すぐにわかる?
@int i=0;if(i=1){puts("1");}else{puts("2");}
Aint j=0;for(;j>0;++j){}


109 名前:デフォルトの名無しさん [2009/08/02(日) 02:02:48 ]
分かるよ。
1,1 が表示される。
2,for文は実行されない。

110 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 07:04:04 ]
俺は後者はとっさに判らないな
単項++演算子の戻り値はアテにすべきじゃないと思ってる
自分じゃそういうコードは書きたくないね

111 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 07:06:57 ]
単項++の戻り値は使われていないわけだが…

112 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 07:13:43 ]
ごめんなさい間違えました

113 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 07:15:59 ]
i=1が(文脈によっても)何を返すかは、言語によってブレがあるな。

114 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 08:16:52 ]
BASIC系は文脈で比較か代入かが決まることが多いね
本家はLET省略不可だからLET文以外代入だけど

Javaは代入文自体の戻り値はCと変わらんが
if文がbooleanしか受け付けないからエラーだな

115 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 12:42:53 ]
>>107
底辺Rubyプログラマーってことだろ



116 名前:デフォルトの名無しさん [2009/08/03(月) 09:39:57 ]
所謂覆面算で
英字一文字がそれぞれ異なる一桁の数字(0-9)で表されるとき
one
+ nine
+ twenty
+ fifty
= eighty
となる組み合わせを検索してください
各行の先頭の文字は0以外です

117 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 11:52:03 ]
それって正解は「そんな組み合わせは無い」で合ってる?

118 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 11:55:11 ]
pythonスレで答え出てなかったっけ?

119 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 12:26:48 ]
ごめんあった、何故かone+nine+twenty+fifty+eighty=eightyで計算してた俺の馬鹿〜
selects([], _).
selects([X|XL],YL) :- select(X,YL,L), selects(XL,L).
check(O,N,E,I,T,W,Y,F,G,H,ONE,NINE,TWENTY,FIFTY,EIGHTY) :-
ONE is O * 100 + N * 10 + E,
NINE is N * 1000 + I * 100 + N * 10 + E,
TWENTY is T * 100000 + W * 10000 + E * 1000 + N * 100 + T * 10 + Y,
FIFTY is F * 10000 + I * 1000 + F * 100 + T * 10 + Y,
EIGHTY is E * 100000 + I * 10000 + G * 1000 + H * 100 + T * 10 + Y,
ONE >= 100, NINE >= 1000, TWENTY >= 100000, FIFTY >= 10000, EIGHTY >= 100000,
EIGHTY =:= ONE + NINE + TWENTY + FIFTY.
solve(ONE,NINE,TWENTY,FIFTY,EIGHTY) :-
selects([O,N,E,I,T,W,Y,F,G,H],[0,1,2,3,4,5,6,7,8,9]),
check(O,N,E,I,T,W,Y,F,G,H,ONE,NINE,TWENTY,FIFTY,EIGHTY).
?- solve(ONE,NINE,TWENTY,FIFTY,EIGHTY).
ONE = 984,
NINE = 8584,
TWENTY = 364832,
FIFTY = 75732,
EIGHTY = 450132 ;
false.

120 名前:デフォルトの名無しさん [2009/08/03(月) 13:24:34 ]
prologだっけ?


121 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 14:54:47 ]
Prologだよ
手続き書くのは面倒いが
覆面算とかはむしろこの言語の十八番だと思う

122 名前:デフォルトの名無しさん [2009/08/03(月) 15:29:28 ]
>>121
おすすめのProlog実装を教えてください。
あとおすすめの教科書もあれば。

123 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 15:48:44 ]
とりあえずはSWI-Prologで良いんじゃないかと
教科書は…Prologスレのテンプレに載ってるやつ片っ端読むのが良いんじゃない?
日本語で書かれてるやつだけ読んでもそれなりには解るかと

ちなみに今回のコードは「Prolog 覆面算」でググって出てきた
SEND+MORE=MONEYのコードを元にして改変したものだったりする
自分で書いたコードは遅すぎて話にならんかったw

124 名前:デフォルトの名無しさん [2009/08/03(月) 15:51:51 ]
metafontとかでも解けそうな気がするな。
くりあがりの処理がミソかしら。


125 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:24:40 ]
>>123
a+b+...+c=x の形になる任意の式を与えて
解いてもらうようにするにはどうすれば良いですか?



126 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:34:53 ]
>119 みたく答えになりうる値を全部列挙するワケにはいかないだろうから
モジュール使うほうが良いんじゃないかな

?- use_module(library('clp/bounds')).
?- 3 + X + 4 #= 19.
X = 12.

っていうか、Prologってこのスレで扱って良いものなのかな

127 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 07:35:13 ]
>>123
さんくすです。swi-prologをインストールして勉強することにします。

128 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 15:00:08 ]
>>126
他の言語よりも分かりやすく短く書けるのならそれはLL

129 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 15:04:26 ]
この手の問題だと、論理型が得意だったって事

130 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:16:06 ]
読めないからよく解らんのだが、119のコードって他言語に直訳できないの?

131 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:20:03 ]
アセンブリ

132 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:24:23 ]
119って式が変わったら毎回書き換えるしかないんかな

133 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:35:08 ]
>>130
つ ttp://miko.org/~naruto/Artifact/MASKSQL.html

134 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 17:31:52 ]
汎用性は無いだろうね
ただコード自体が式を列挙してるようなコード…つまり入力データみたいなコードだから
Prolog的には下手なことするより最適な方法かも知れん

135 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:06:45 ]
>>130
論理型言語を、そうでない言語に直訳
するのは基本的に無理。

論理型言語には、処理順序とかまったく
ないし、根拠となる条件式に基づいて
解を求めることしかできない。




136 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:09:31 ]
>>132
式を他の言語で解釈して、
ソースを機械生成すれば。


137 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:16:27 ]
>>135
じゃあロンリー型言語は?

138 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:37:13 ]
ロンリーロンリーロンリーロリー

139 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:51:06 ]
TOMOちゃんじゃないか!

140 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:09:17 ]
どっちにしろマシン語になるんだから、無理なわけないだろ。

141 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:14:19 ]
>>140
誰がそんな話をしたんだろうか
ある言語を使うってことは、その言語の制約内のことしかできないってことだと単純にわかるだろ

ここで話題に上がるような言語は、大概昔ラリーさんだかが言った、
「簡単な事は簡単に、難しいことは可能に」
って作られてるから、とりあえず何でも可能な気がするだけだ。

142 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 00:59:56 ]
どっちかっつーと、Prologは制御可能なフレームワークって感じ。

普通の言語は流れそのものを書くが、Prologの場合は
基本的な流れはProlog処理系が既に持ってて、ちょいと書くだけである程度勝手に動くものを
コードで制御してやると流れが変わって、複雑な動作ができる。

だから元々Prologが持ってる流れに近い動作は簡単に、遠い動作は面倒になるし
流れそのものが明快なものに対しては、それをそのまま書けば良い手続き型言語に対して
「既にある流れをどう変えればその流れになるか」と考えなくちゃいけないからしんどい。

143 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 02:45:30 ]
>>142
PrologはDSLの一種と使った方が良いと思う。
正規表現とかSQLとかの仲間。

144 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 09:19:46 ]
とはいってもPythonにprologモジュールが入ったりすることはないよね
広めたかったら他のプログラミング言語用のライブラリだ、って割りきっちゃったほうがいいのかな

145 名前:デフォルトの名無しさん [2009/08/06(木) 09:42:30 ]
On LispにLispで書かれたprologが載ってたな。
結構すくないコードで書かれてたよ




146 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 10:31:24 ]
何気に欲しいな、Prologモジュール

147 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 17:31:14 ]
何気に欲しいな、Prologモジュール

148 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 19:11:44 ]
>>147
インストール済みのPrologを利用する
薄いラッパーだったら、自分ですぐ
作れんじゃね?


149 名前:デフォルトの名無しさん [2009/08/06(木) 23:29:52 ]
>>147
Python で作る Prolog 処理系;;www.okisoft.co.jp/esc/prolog/in-python.html


150 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 06:15:54 ]
保守

151 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 18:56:52 ]
Pythonって何で「普通に」文字列内で変数展開できないの?
3.0でもformat()とlocal()必要だし。どういう方針なんだろ。誰かおしえて。
これさえできればPython使いたいんだけど。

152 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 20:15:54 ]
文字列内での変数展開なんて一部LLを除いたらおもいっきり邪道だと思うが。
PythonはReconstruct Cを目指した正統派LLというポリシーだからなあ。

153 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 21:55:00 ]
LLといってもいろいろあるけど、変数展開はスクリプト言語的な機能だよな。
位置づけ的には
Java系カッチリ言語 <- Python ... Ruby . Perl -> シェルスクリプト系テキトー言語

154 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 22:10:23 ]
変数展開があると、普段から変数に変な記号つくしな。

155 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 22:20:26 ]
>>154
なにその間違った理解



156 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 10:04:38 ]
>>151
>Pythonって何で「普通に」文字列内で変数展開できないの?
なんでだろうね。
Rubyのように文字列中に任意の式を埋め込めるようにするには、パーサをおもいっきり書き換える必要があるからめんどくさいけど、
変数展開ぐらいならできてもいいよね。
s = "x=${x}"
とか。
s = "x=%{x}" % locals()
とかかっこわるいわ。

157 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:29:20 ]
>>151
tempita

158 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:33:11 ]
eval

159 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 15:28:26 ]
「変数展開をしないで文字列を書くときはシングルクォーテーション」とか
文字列書くときのルールを無駄に増やすのはPythonらしくない

それに比べりゃlocals()かっこわるいなんてw

160 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 15:30:47 ]
>>159
> 文字列書くときのルールを無駄に増やすのはPythonらしくない

なんという・・・クマー

161 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:57:24 ]
>>159
r"..." とか u"..." とか """...""" とかあるのに、なにがPythonらしくないだよ
信者乙

162 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 20:06:05 ]
Python-Devでは5年以上前に議論された話題だよ。
変数展開はいつ評価するの?パース時?それとも実行時?
gettextと組み合わさったときはどういう挙動するの?そのほかの文字列メソッドとは?
セキュリティも怖いよね?

結局、文字列に format() メソッドを追加するのが一番汎用的で強力。
変数展開は str.format() よりも限定した状況にしか対応できず、
そんな限られた状況で 「format(vars())」 程度のタイプ数を削減するためだけに
言語規則を複雑にするメリットを見いだせなかったので却下された。

163 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 21:05:52 ]
> gettext…
意味わからん。
変数展開って言語構造レベルの機能だから
メソッドには展開後の文字列が渡るだけでしょ

164 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 21:16:43 ]
>>163
"$foo value is $bar"
というメッセージを国際化したくなったとき
gettext("$foo value is $bar")
って出来ないでしょ?
str.format() メソッドなら
gettext("{0} value is {1}").format(vars())
できる。 .format() の方が汎用的。

165 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 21:55:06 ]
>>164
gettext('$foo value is $var');



166 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 21:58:38 ]
>>165
gettextっていうのは渡された文字列をキーにして、
現在の言語の翻訳文を持ってくる。
それだとgettext()に渡される前に変数展開されてしまうから、
キーとして利用不可能。

167 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 22:07:08 ]
>>166
リテラルの変数展開は普通、展開・非展開を使い分けるための記法が用意されてる。
PHP なんかだと ' では変数展開されず、" では展開される。

168 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 22:10:39 ]
ただ結局HTMLみたいなののためなら、
テンプレートエンジン使う→変数展開イラネって話になる。

169 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 22:35:12 ]
ほー、sprintf()じゃなくて%なのか。
perlにもformat/write有るけど、ほとんど使われてないね。
仕様がアレだからか。

170 名前:デフォルトの名無しさん [2009/08/12(水) 22:36:37 ]
で gettext() なんか使わないほうがよい?


171 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 23:31:05 ]
使うのは構わんけど、そういうのに限って英語も日本語も中途半端なソフトが出来上がるからなあ。

172 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 23:55:17 ]
>>162
>変数展開はいつ評価するの?パース時?それとも実行時?
解析はパース時、値の評価は実行時。
つまり "foo=${foo}." というリテラルがあればパース時に "".join(("foo=", str(foo), ".")) に変換してくれればそれでいい。
#いくらなんでも、これくらいのことがわからないPython開発陣ではないだろ。162は分かってないかもしれないけど。

>gettextと組み合わさったときはどういう挙動するの?そのほかの文字列メソッドとは?
>セキュリティも怖いよね?

どれも意味不明。セキュリティって何だよ。変数の埋め込みができたらセキュリティ上問題になるのか。珍説すぎる。
自分ででっちあげた理由を、さもPythonでの公式見解みたいな言い方するのはやめて。自分だけの仮説なら、そうとわかる書き方にしようぜ。

> 結局、文字列に format() メソッドを追加するのが一番汎用的で強力。
> 変数展開は str.format() よりも限定した状況にしか対応できず、
> そんな限られた状況で 「format(vars())」 程度のタイプ数を削減するためだけに
> 言語規則を複雑にするメリットを見いだせなかったので却下された。

これソースある?実際に却下されたというソースがみたい。
それから変数を埋め込みたいのは、タイプ数削減もあるけど、わかりやすさ・読みやすさのためでもあるんだけどな。たとえば
"{0}: not found (file={1}, line={2})".format(name, file, line) より
"${name}: not found (file=${file}, line=${line})" のほうがわかりやすい。
もちろん短いことも重要。
"{name}: not found (file={file}, line={line})".format(**locals()) ← これ、いけてないよな。実行時にパースしてるから遅いし。


173 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 00:04:39 ]
>>164
>"$foo value is $bar"
>というメッセージを国際化したくなったとき
>gettext("$foo value is $bar")
>って出来ないでしょ?

gettext()使うときに、だれもこんなことしないって。gettext()の引数はキーなんだから、こんなところで埋め込もうとは誰も考えない。
こじつけもいいところ。
str.format()のほうが汎用的なことと、埋め込み文字列がほしいこととは別の話だよ。
.format()をなくしてかわりに埋め込み文字列を導入しようという話ではない。
.format()もいいけど埋め込み文字列も欲しいよねという話なんだけど、信者にはわかってもらえなさそう。



174 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 00:05:08 ]
ところで、最近なんでRubyが失速してきたんだ?
RoRバブルの崩壊でJAVA・PHP・Pythonあたりへの対抗力の限界が露呈された、ってところ?

175 名前:151 mailto:sage [2009/08/13(木) 00:09:36 ]
うおおお、なんかみんな語ってる!
やっぱり言語仕様を複雑にするほど必要としてないって判断なんですかね。

まあ、オライリーのPythonチュートリアルで勉強中ですが、
クラス部分の実装の仕方に惚れたので、Python使ってこうかと思います。

あと、Pythonは正規表現がモジュールってところがいいですね。



176 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 00:15:16 ]
そもそも、変数展開ってそんなに使う?

177 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 00:23:00 ]
俺はPerlでもsprintf、RubyでもString#%使うなぁ






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

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

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