【Perl,PHP】LLバトルロワイヤル7【Ruby,Python】 at TECH
[2ch|▼Menu]
[1からを表示]
50:デフォルトの名無しさん
09/07/26 10:09:38
tail $ take 10 $ filter func [1..]

とかそんな感じのことじゃねーの?

51:デフォルトの名無しさん
09/07/26 10:31:33
>>48
> 元の「言葉」を正しく読み取ったらどえなるのだ。
「(1〜∞)の中から、条件に合致する値を抽出し、さらのその2番目から10番目を抽出する」
これが元の言葉だよね。
「”マジで言葉通りに書ける”とあるから1−2番目を計算せずに」って、それは元の言葉にある
「条件に合致する値を抽出」する途中の段階を、そっと見て見ぬフリしてない?

52:デフォルトの名無しさん
09/07/26 10:56:53
遅延評価って、例えば現在の時間を内部でパラメータとして使うような関数だと、
いつ評価されるん?

53:デフォルトの名無しさん
09/07/26 11:00:43
現在時間を使うなら「時間を得る」部分だけはその時点で評価されて
それ以外の処理は後回しじゃね?

54:デフォルトの名無しさん
09/07/26 11:06:17
>>51
見て見ぬフリはしてない。「条件に合致する値を抽出」するところは処理系が
3番目が必要になったときに1−3番目を計算して3番目を返すと解釈している。
だからプログラマはいきなり3番目を取り出せると想像したんだけどこれで
合ってるんじゃないか。

55:デフォルトの名無しさん
09/07/26 11:09:07
遅延評価と、クロージャとかカリー化を統一できそうだな。

56:デフォルトの名無しさん
09/07/26 11:38:45
>>52
Haskell では IO モナドでそのへんをうまくやってる

57:デフォルトの名無しさん
09/07/26 17:48:30
とんだすれ違いスレだな

58:デフォルトの名無しさん
09/07/26 18:52:22
すれちがい通信か

59:デフォルトの名無しさん
09/07/26 19:52:52
>>16>>26のアルゴリズムで書いてみたわ。
泥臭い方法だけど、桁が増えても計算量が線形増加だからいいかも。
30行くらいだけどソースいる?

60:デフォルトの名無しさん
09/07/26 21:05:47
plz

61:デフォルトの名無しさん
09/07/26 21:06:28
2/2 URLリンク(www.youtube.com)
1/2 URLリンク(www.youtube.com)

62:59
09/07/26 21:16:15
def kaihei(n, k):
    stack = []
    keta = 1
    while n >= 100:
        stack.append(n % 100)
        n = int(n / 100)
        keta = keta + 1
    else:
        stack.append(n)
    dlist = list(range(10))
    dlist.reverse()
    baikon = 0
    rem = 0
    result = ""
    while (keta > 0 or (keta <= 0 and -keta <= k)):
        if keta == 0:
            result += "."
            keta = keta - 1
        if(len(stack) > 0):
            rem = rem + stack.pop()
        for i in dlist:
            if(rem >= i * (baikon + i)):
                result += str(i)
                rem = (rem - i * (baikon + i)) * 100
                baikon = baikon * 10 + i * 20
                keta = keta - 1
                break
    print(result)

63:59
09/07/26 21:24:32
>>> kaihei(2, 100)
1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727

ちなみに、整数しか対応してない。
一部の名前が、開平とか桁とか倍根とかそのままローマ字になってるけど、そのあたりは勘弁してくれ。
かわりに桁合わせをちゃんとしたから。

64:デフォルトの名無しさん
09/07/26 23:32:27
クスクス

65:デフォルトの名無しさん
09/07/26 23:35:23
>>43
横レスだが

drop 49 $ take 100 $ filter (\x -> (foldr ((+) . product . enumFromTo 1 . read . (flip (:) [])) 0 . show) x == x) [1..]

直感的に書くとこんな感じかな?
49と100の部分を変えればどうとでも書けるよ。

66:デフォルトの名無しさん
09/07/27 07:40:37
>>65
サンクス!
haskell知らないから間違っているかもしれないが49までの計算結果を捨てる
のを明示しなきゃいけないということですね。
>>34を読んだら 2..10 という感じで書けると思っていた。

67:デフォルトの名無しさん
09/07/27 08:51:59
>>62-63
GJ!!!

68:デフォルトの名無しさん
09/07/27 11:28:26
memo
URLリンク(www.youtube.com)

69:デフォルトの名無しさん
09/07/27 12:08:35
>>66
そうですね。
でもたとえば「それが50番目である」ことを示すには前の49個の計算が
必要なわけで、それを省略することは遅延評価といえどできない。
遅延評価なのは100以降を計算しないこと。

自分で2,10を引数にとる関数を作ればもちろん2..10みたいに書けるよ。



70:デフォルトの名無しさん
09/07/27 15:02:19
PHPで無料レンタル鯖のいいとこ&有名なとこあります?

71:デフォルトの名無しさん
09/07/27 15:12:24
俺んち

72:デフォルトの名無しさん
09/07/27 15:25:28
養殖ならノルウェー辺りが有名だな

73:デフォルトの名無しさん
09/07/27 23:44:17
URLリンク(www.atmarkit.co.jp)

なにポーズつけてるんだよ(w

74:デフォルトの名無しさん
09/07/27 23:50:13
It has already been out.

75:デフォルトの名無しさん
09/07/28 01:14:48
「ポーズとってください」って言われたんだろうなw
『まつもとゆきひろ コードの世界』でも「私だって恥ずかしい」とか書いてた

76:デフォルトの名無しさん
09/07/28 03:13:45
その記事おもしろかったねー。いろんな話が凝縮されてて。

77:デフォルトの名無しさん
09/07/28 05:55:15
プログラマーって見栄え悪いのばっかだな。

78:デフォルトの名無しさん
09/07/28 06:00:38
見栄えで稼ぐ商売以外は似たり寄ったりだよ。

79:デフォルトの名無しさん
09/07/28 12:14:20
>77
運動不足が職業病だからな。

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

81:デフォルトの名無しさん
09/07/28 13:31:14
全員、顎髭を伸ばせば、かっこがつくよ。

82:デフォルトの名無しさん
09/07/28 13:50:10
They should be skin head.

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



84:デフォルトの名無しさん
09/07/29 20:59:40
URLリンク(coreblog.org)
このエープリルフールを真に受けちゃった人ですか

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

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

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

88:デフォルトの名無しさん
09/07/30 03:34:48
クヌース先生の美学だよなあ……

89:デフォルトの名無しさん
09/07/30 13:13:54
>>87
最近の小学生は3と聞いたけど

90:デフォルトの名無しさん
09/07/30 13:39:23
>>89
それ聞きまちがい


91:デフォルトの名無しさん
09/07/30 15:00:19
URLリンク(ja.wikipedia.org)円周率は3

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

93:デフォルトの名無しさん
09/07/31 00:39:36
日付みればわかるだろ。アホか

94:デフォルトの名無しさん
09/07/31 01:03:21
実際、真に受けてるやつがいるだろ。アホか

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

96:デフォルトの名無しさん
09/07/31 08:58:40
>>95
犠牲て。

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



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

98:デフォルトの名無しさん
09/07/31 18:47:55
4/1に書かれた記事は全て疑わないといけないのかよ

99:デフォルトの名無しさん
09/07/31 19:00:29
とうぜんだろ

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

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

102:デフォルトの名無しさん
09/07/31 22:13:16
>>101
あ、それいいえてミョー

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

104:デフォルトの名無しさん
09/07/31 23:34:11
>>103
断固GUYって誰?

105:デフォルトの名無しさん
09/07/31 23:34:33
LLTVまで残り1ヶ月を切りました。

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

106:デフォルトの名無しさん
09/08/01 06:20:40
すみません。

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

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

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

107:デフォルトの名無しさん
09/08/01 15:45:52
そのコピペなんかいみあんの?


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


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

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

111:デフォルトの名無しさん
09/08/02 07:06:57
単項++の戻り値は使われていないわけだが…

112:デフォルトの名無しさん
09/08/02 07:13:43
ごめんなさい間違えました

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

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

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

115:デフォルトの名無しさん
09/08/02 12:42:53
>>107
底辺Rubyプログラマーってことだろ

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

117:デフォルトの名無しさん
09/08/03 11:52:03
それって正解は「そんな組み合わせは無い」で合ってる?

118:デフォルトの名無しさん
09/08/03 11:55:11
pythonスレで答え出てなかったっけ?

119:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/08/03 13:24:34
prologだっけ?


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

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

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

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

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


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

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

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

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

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

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

129:デフォルトの名無しさん
09/08/04 15:04:26
この手の問題だと、論理型が得意だったって事

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

131:デフォルトの名無しさん
09/08/04 16:20:03
アセンブリ

132:デフォルトの名無しさん
09/08/04 16:24:23
119って式が変わったら毎回書き換えるしかないんかな

133:デフォルトの名無しさん
09/08/04 16:35:08
>>130
URLリンク(miko.org)

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

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

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


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


137:デフォルトの名無しさん
09/08/04 19:16:27
>>135
じゃあロンリー型言語は?

138:デフォルトの名無しさん
09/08/04 20:37:13
ロンリーロンリーロンリーロリー

139:デフォルトの名無しさん
09/08/04 20:51:06
TOMOちゃんじゃないか!

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

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

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

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

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

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

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

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

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


146:デフォルトの名無しさん
09/08/06 10:31:24
何気に欲しいな、Prologモジュール

147:デフォルトの名無しさん
09/08/06 17:31:14
何気に欲しいな、Prologモジュール

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


149:デフォルトの名無しさん
09/08/06 23:29:52
>>147
Python で作る Prolog 処理系;;URLリンク(www.okisoft.co.jp)


150:デフォルトの名無しさん
09/08/11 06:15:54
保守

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

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

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

154:デフォルトの名無しさん
09/08/11 22:10:23
変数展開があると、普段から変数に変な記号つくしな。

155:デフォルトの名無しさん
09/08/11 22:20:26
>>154
なにその間違った理解

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

157:デフォルトの名無しさん
09/08/12 11:29:20
>>151
tempita

158:デフォルトの名無しさん
09/08/12 11:33:11
eval

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

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

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

なんという・・・クマー

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

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

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

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

164:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/08/12 21:55:06
>>164
gettext('$foo value is $var');

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

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

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

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

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


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

172:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/08/13 00:04:39
>>164
>"$foo value is $bar"
>というメッセージを国際化したくなったとき
>gettext("$foo value is $bar")
>って出来ないでしょ?

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



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

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

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

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

176:デフォルトの名無しさん
09/08/13 00:15:16
そもそも、変数展開ってそんなに使う?

177:デフォルトの名無しさん
09/08/13 00:23:00
俺はPerlでもsprintf、RubyでもString#%使うなぁ

178:デフォルトの名無しさん
09/08/13 00:27:33
複雑に変数を埋め込むような場合は普通の文字列連結よりは見やすくなるね。
でも当然文字列のパースが入るからパフォーマンスコストは数倍になる。
最初は変数埋め込みばっかしてたけど最近は極力使わないようにしてる。

179:デフォルトの名無しさん
09/08/13 00:45:17
文字列のパース?そんなんコンパイル時だけだろ
パフォーマンスにほとんど影響しない

180:デフォルトの名無しさん
09/08/13 00:46:48
え?

181:デフォルトの名無しさん
09/08/13 00:48:00
Python的にTemplate/substitute機能ってどうなん?

182:デフォルトの名無しさん
09/08/13 01:32:35
>>167
ああ、そういう意味ね。で、結局gettext()で得られたメッセージに対する
変数展開は行われないんだ。

Perlみたいな変数展開を .format() や % で置き換えることはできるが、
逆は不可だ。言語仕様としても、 .format() や % は通常のメソッドや
演算子オーバーロードの範囲で実現できるのに対して、Perlみたいな
変数展開は言語仕様を汚さないと実現できない。

183:デフォルトの名無しさん
09/08/13 01:37:46
>>182
gettextで得られたメッセージに対する変数展開ってどういう意味?

184:デフォルトの名無しさん
09/08/13 01:53:02
勝手にやられるとうざいから、formatが良い落としどころだと思うけどな。

gettextって
print _("hoge: %s, %s") % (x, y)
ってやるだろうから、こいつに関しては展開要らない。

シェルスクリプトなら変数展開ほしいけど、pythonでほしいと思ったことってあんまり無い。
複雑になるなら"%(name)s" % locals()とかテンプレート使うなりする。
(awkでもprint "hoge" $1 "hoge" でいいし、、ちょっと複雑になってもprintfで事足りる)

185:デフォルトの名無しさん
09/08/13 01:58:30
>>172
URLリンク(www.python.org)
が Reject されて
URLリンク(www.python.org)
になった。詳しい議論はMLの過去ログ参照。
変数展開に能力を与えすぎると複雑だったり危険だったりするし、
能力を限定するとわざわざ言語仕様を汚す価値が無くなるので、
%とtemplateクラスの使い分けで十分と判断された。

186:デフォルトの名無しさん
09/08/13 07:32:13
>>178
>でも当然文字列のパースが入るからパフォーマンスコストは数倍になる。

やっぱりこいつわかってないよ。文字列リテラルが変数埋め込みをサポートしている言語なら、
コンパイル時に一度行なわれるだけだから、パフォーマンスに影響なんかあるわけない。
「パフォーマンスコストは数倍になる」とか無知もいいところ。

実行時に毎回パースして遅くなっているのは format() のほうだろ。
"{foo} is {bar}".format(**locals())
これをformat()が毎回パースしてるんだから、パフォーマンスコストが悪いのはどう考えてもこっちのほう。
Perl の "$foo is $bar" のように文字列リテラルが変数埋め込みをサポートしている言語なら、
コンパイルした時点ですでにパースは完了しているので、毎回パースする必要なんかない。

ところでセキュリティーの解説はまだなの? なんで変数の埋め込みができるとセキュリティ上問題になるの? 
しっかり解説たのむぜ>>162


187:デフォルトの名無しさん
09/08/13 09:45:18
変数埋め込みだからセキュリティー上問題っていうのは何かあるのかな
意図しない埋め込みが起こるかもしれないぐらい?

188:デフォルトの名無しさん
09/08/13 09:49:21
sprintfやformatではおこらない、何か

189:デフォルトの名無しさん
09/08/13 10:03:34
変数埋め込みがセキュリティ的に危ないのなら、LLに限らずどの言語も危ないことになるな
すばらしい発見なのでさっさと報告してくれ

190:162
09/08/13 10:33:50
>>186
>>178 は俺じゃねーよ。

Python-dev では変数展開がプロポーズされてから、>>162のような議論があった、
というだけの話だよ。別にPerlやRubyや>>186の提案している仕様に脆弱性がある
というわけじゃなない。詳しく知りたかったら2002年の1月と6月のPython-dev過去ログ読め。
以下てきとうに要約。

*どの変数を展開するのかが実行時に決めると、安全じゃない文字列に対して危険
*なので導入するとしたらコンパイル時に $"${foo + bar} is $baz" が
(str(foo + bar) + " is " + str(baz)) に変換されるという仕様はどうだ。
これならセキュリティの問題は無い。
*でも、 % に比べると変数展開時にどの範囲の変数が利用されるのかわかり難いよね
*そんな仕様じゃgettextみたいなケースで使えない
*gettextを、 gettext("$foo is $bar", foo=hoge, bar=hage) みたいな仕様にしたら?
*言語仕様汚してそんな汎用性の無い機能入れるより、汎用的なテンプレートライブラリ
入れたほうがマシだ。

あと、MLでの議論の結果変数展開の代わりに選ばれたのは .format() や % のほうじゃなくて
Templateのほうで、こいつを使うとパースは一回で済むから、繰り返し使う場合は
こっちを使うべきだな。

191:デフォルトの名無しさん
09/08/13 17:46:35
PEP292でPEP215のセキュリティに言及してる部分がさっぱり分からん。
いやみっぽく書かれてるのは分かるけど。

192:デフォルトの名無しさん
09/08/13 17:50:46
いやだから gettext で変数展開は使わんと何度いったら…

193:デフォルトの名無しさん
09/08/13 18:29:14
>>192
だから、gettextでは使わないみたいに使える状況が限定される
変数展開より、広い状況で使える Template の方が良いよねっていう
議論をしてるんだってば。

194:デフォルトの名無しさん
09/08/13 18:37:46
>>193
意味がわからん。

それとも単に歯応えしたいだけ?

195:デフォルトの名無しさん
09/08/13 19:58:25
意味がわからん。

196:デフォルトの名無しさん
09/08/13 20:10:00
いい歯ごたえ!

197:デフォルトの名無しさん
09/08/13 20:13:48
リテラルでしょ?
たとえば、辞書のキーに使うこともあんまり無いだろうし、
特に問題無さそうだけどね。

198:デフォルトの名無しさん
09/08/13 20:21:21
歯応えwwwwwwwwwwwwwwwwwwwwww

199:デフォルトの名無しさん
09/08/13 20:49:49
マジレスすると、口答えと歯向かう、がごっちゃになったんだろ
どっちも上から目線ではあるけど、それは敢えてだろうな

200:デフォルトの名無しさん
09/08/13 21:01:13
言いたいことは察せられる
「噛みつく」なら適切かと思う。表現って難しい

201:デフォルトの名無しさん
09/08/13 22:23:24
>186-189
C言語のprintfにはセキュリティホールがあるけど
LLでその書式文字列攻撃がどこまで応用効くか俺は判らんな。
ただ、printf/sprintf/format/% の書式指定文字列に変数埋め込みを使っちゃうと
予想外の挙動を招いてしまう可能性が高いのは間違いないよ。

202:デフォルトの名無しさん
09/08/13 23:37:55
そういや、ここのPythonユーザはみんな3.x使ってるの?
俺は本業Java趣味Pythonってこともあって、今日から移行することにしたんだが。

203:デフォルトの名無しさん
09/08/14 00:01:53
仕事2.5、趣味2.6だよ。
3.1は入れてあるけどほとんど使わない

204:デフォルトの名無しさん
09/08/14 03:39:07
特にprintfとprintで混乱したことは無いな。
予想外の挙動ってのがあるのか。
pythonこえー。

205:デフォルトの名無しさん
09/08/14 05:53:04
>>193
>だから、gettextでは使わないみたいに使える状況が限定される
>変数展開より、広い状況で使える Template の方が良いよねっていう
>議論をしてるんだってば。

gettext使う場合こそすごく限定されるだろ。使わない場合のほうが圧倒的に多い。
特殊な事例をさも一般的なことのように見せて反対するのはバカのすること。


>>201
>ただ、printf/sprintf/format/% の書式指定文字列に変数埋め込みを使っちゃうと
>予想外の挙動を招いてしまう可能性が高いのは間違いないよ。

それ、変数埋め込みに限った話じゃないし、変数埋め込みの欠陥ではない。

結局、なんとかしてPythonの仕様を正当化したいだけの信者にしかみえない。


206:デフォルトの名無しさん
09/08/14 09:58:41
いまのpythonにどういう風に導入したらいいと思う?
uとかrのまねして、e""みたいにすれば、影響範囲は少なそうだけど。

効率を考えなければ、Template("文字列").safe_substitute(vars())とかに置き換えればいいのか?

207:デフォルトの名無しさん
09/08/14 10:10:12
スレリンク(newsplus板)

208:193
09/08/14 11:06:30
>>205
gettextは目的が明確な専用ツールだし、言語仕様ではなくライブラリ。

それに対して、文字列に対して変数を展開するのは汎用的な要求で、
言語仕様に組み込むとすれば(PerlではなくPythonでは)できるだけ汎用に
いろんな目的に使えることが要求される。gettextと同じレイヤで語れない。

で、Templateならgettextに対応できて、Perl/Ruby方式変数展開では
対応できない。ならば汎用でしかも言語仕様を汚さないで済む方が良い、
というのがPython的な判断。

実際に string interpolation に対して gettext で使えねーと反論しているメールは
こちら。
URLリンク(mail.python.org)

209:193
09/08/14 11:20:41
ちなみに、gettextはリテラル以外の文字列に対する変数展開がほしいという
要求のわかりやすい例であって、gettextのためだけに interpolation が却下された
訳じゃないぞ。

210:デフォルトの名無しさん
09/08/14 11:30:39
>>206
既に str.format(**vars()) で実現できる以上、言語仕様を汚して15タイプを
削減する提案が通る見込みは無いだろうな。
あったらときどき便利な機能を言語仕様に際限なく組み込んでいけばPerlに
なってしまう。

211:デフォルトの名無しさん
09/08/14 16:14:51
俺的にはstr.format()で満足。信者だからかな?w

212:デフォルトの名無しさん
09/08/14 16:20:45
おまえらお盆に何やってんだ

213:デフォルトの名無しさん
09/08/14 20:13:15
センスが悪くて誰もやらないようなことを持ち出して、
それを出来ないように蓋をするのがPython流なんだと理解した。

214:デフォルトの名無しさん
09/08/14 21:25:30
はいはい

215:デフォルトの名無しさん
09/08/14 21:40:14
別に蓋してない気がするけど。元々できないんだし。

216:201
09/08/14 23:05:48
>205
俺自身はRubyがメインだし、Pythonを正当化したワケじゃなく
>186-189の疑問に判る限りで答えただけ。
何がなんでも正当化したいなら「変数展開とeval()組み合わせたら〜」とか言ってセキュリティーホールがあるって主張するし
わざわざ「printf/sprintf/format/% の書式指定文字列に変数埋め込みを」という限定を入れたりしないよ。

217:デフォルトの名無しさん
09/08/14 23:07:17
実際、変数展開ある言語だと何かもやもやするから、
Pythonにはいらんな。

218:デフォルトの名無しさん
09/08/14 23:26:36
組み合わせるまでもなく
evalだけでセキュリティホールだな

219:デフォルトの名無しさん
09/08/14 23:32:18
まあ、「何がなんでも正当化」をするなら、って話だからw

220:デフォルトの名無しさん
09/08/15 01:23:28
俺もない方がいいと思う。それこそがPythonの存在理由と思うから。Perlみたいな言語はPerlだけでいい。

221:デフォルトの名無しさん
09/08/15 04:30:09
Perl
my $price = 100;
print "price = $price";

PHP
$price = 100;
echo "price = $price";

Ruby
price = 100
print "price = #{price}"

222:デフォルトの名無しさん
09/08/15 05:32:15
JavaScript
price = 100
print "price = " + price

そろそろJavaScriptに、変数展開もsprintf相当の機能も
ないことに誰か言及してあげてもいいと思うんだ

223:デフォルトの名無しさん
09/08/15 06:58:06
>>222
ExtJS


224:デフォルトの名無しさん
09/08/15 06:59:23
>>210
>言語仕様を汚して

このへんが信者だよな。

225:デフォルトの名無しさん
09/08/15 07:09:19
全然目的が見えない。

226:デフォルトの名無しさん
09/08/15 11:00:20
JavaScriptを使う理由って、ブラウザ上で動くスクリプト言語が事実上JavaScriptしかないってだけだからな。

227:デフォルトの名無しさん
09/08/15 11:17:46
結局そこは、ブラウザの政治力学なのでしょうがない。

228:デフォルトの名無しさん
09/08/15 12:15:26
JavaScriptの近年の過大評価って、不良の善行、落ちこぼれの平均点みたいなところがあるよな。
最初はあんなにダメな子だったのに…という。

229:デフォルトの名無しさん
09/08/15 12:16:24
政治力学がよく解らんが、ブラウザとしてはそんなに多数の言語をサポートしたくないんだろう
HTMLとJSだけサポートするから、あとはサーバ側でやってよっていう
あんまり馬鹿でかいエンジンになられるのも嫌だから、俺はそれで良いと思う

230:デフォルトの名無しさん
09/08/15 12:26:47
>>229
サポートしたくないもなにも、誰も立候補してない

231:デフォルトの名無しさん
09/08/15 12:37:51
JavaScript、結構トリッキーなことが出来て面白いぞ。

232:デフォルトの名無しさん
09/08/15 12:57:46
言語としてはかなり先進的な方
あの普及率で、例えばクロージャが使えるのは珍しい

233:デフォルトの名無しさん
09/08/15 13:01:24
【Javascript,Perl,PHP】LLバトルロワイヤル7【Ruby,Python】

234:デフォルトの名無しさん
09/08/15 13:03:20
ウェブブームに便乗して注目されだした途端に起きた
JavaScriptの言語仕様を讃えれば通っぽいという風潮には飽き飽き。

235:デフォルトの名無しさん
09/08/15 13:13:37
JavaScriptダメな子
JavaScriptやればできる子
JavaScriptでもやっぱりダメな子

236:デフォルトの名無しさん
09/08/15 15:02:15
Firefox上のJSはかんりできる子なんだけど
IEのJSがそこそこだから全体的に評価が引っ張られてる感じ

237:デフォルトの名無しさん
09/08/15 21:40:06
えぇっ? イベントやDOMとかで無く、言語のレベルで違いってあった?
パフォーマンスとかって話?

238:デフォルトの名無しさん
09/08/15 22:19:15
debugger

239:デフォルトの名無しさん
09/08/16 00:33:06
>>237
letとかってIEでも使えるの?


240:デフォルトの名無しさん
09/08/16 01:33:02
getter/setterや分割代入なんかもIEにはまだ無かった気がする
あと、E4X

241:デフォルトの名無しさん
09/08/16 04:08:52
iteratorとかgeneratorとかクロージャ記法とか
要はjs1.7以降の新機能

242:デフォルトの名無しさん
09/08/16 14:22:09
バージョンの違いか。理解しました。

243:デフォルトの名無しさん
09/08/20 18:54:48
まあIE6で動作しないと不可なんだけどね

244:デフォルトの名無しさん
09/08/20 19:03:45
コンマを1つ付けただけで動かなくなるIEに絶望した。


245:デフォルトの名無しさん
09/08/20 19:11:48
CやJavaの流れで付けても動いてよとは思うが、仕様的にはIEが正しいぽいな。


246:デフォルトの名無しさん
09/08/20 20:24:20
やっとIE6を捨てる流れになってきてるね

247:デフォルトの名無しさん
09/08/20 20:41:43
>>246
流れ、ってだけなら、IE8が出た辺りからずっと。
URLリンク(gs.statcounter.com)
ようやく、普通に勧めて反発を食らいにくくなってきた、っていう感じ。

248:デフォルトの名無しさん
09/08/20 22:17:24
ブラウザ依存のサイトなんてうんこだよ。

249:デフォルトの名無しさん
09/08/20 22:21:21
コストや表現力って問題があるんだよ。
ぶっちゃけ、一通りの記述で済めば特定ベンダー以外のみんなが幸せになれるんだ。
それを阻害するブラウザこそがうんこだよ。

250:デフォルトの名無しさん
09/08/21 00:07:09
結論としてはブラウザは全部うんこ

251:デフォルトの名無しさん
09/08/21 08:38:47
全機能を完全な形の完全な見栄えでIE6にも提供する無論追加料金なしとかアホなことが蔓延してるからだ
イマイチ外見に基本機能プラス程度でいいのならやってやるさ
いまさらIE6使ってる一般人向けサイトなんてケータイサイトをCSSで光らせる程度でいいんだよ

252:デフォルトの名無しさん
09/08/21 09:57:40
結論としては http/javascript は全部うんこ

253:デフォルトの名無しさん
09/08/22 02:50:42
そのうんこをこねくりまわして納期までになんとかすんのが俺らの仕事

254:デフォルトの名無しさん
09/08/22 02:56:08
>>251
一応言っておくと、MSが想定する「一般人」は、大抵IE7か8を使ってる。
自動アップデートだし。
微妙すぎる自称玄人もしくは自称マニアのみが、IE6。

あとはまあ、会社でIE6縛りってのもあるっちゃあるが、それは好きで
やってる訳じゃないし、個人批判の対象にはあんまりしたくはない

255:デフォルトの名無しさん
09/08/22 11:06:07
IE6って、Windows98とかMeとかの古いPC使ってる人なのかと思ってたが
マニアが使ってるの?

なんかピンとこないな

256:デフォルトの名無しさん
09/08/22 11:33:35
ネットバンキングとかの主要サービスでも
IE6しか対応していないというところがあるよ。


257:デフォルトの名無しさん
09/08/22 13:42:13
うちの出先は全てにおいて2k/IE6前提

258:デフォルトの名無しさん
09/08/22 13:51:53
IE6ってまだトップシェアじゃないっけ?

259:デフォルトの名無しさん
09/08/22 14:17:00
>>258
韓国の方ですか?

260:デフォルトの名無しさん
09/08/22 14:24:25
あぁ、トップはもうIE7に切り替わってたんだねw 失礼しました

例えばこの調査だと4人に1人がまだIE6だね
URLリンク(internet.watch.impress.co.jp)

261:デフォルトの名無しさん
09/08/22 14:27:42
勘弁してほしいよね

262:デフォルトの名無しさん
09/08/23 17:54:57
IE6ユーザが減ってきてるのはありがたいが、HTML5の動きを
誰かに止めて欲しい。なんでXHTMLじゃないんだよw

263:デフォルトの名無しさん
09/08/23 20:11:25
HTML5でもapplication/xml+xhtmlなxmlで文章を書けてそれはXHTML5と呼ばれる
XHTML2固有の機能が使いたいというならもっともだけどなんかあったっけ

264:デフォルトの名無しさん
09/08/23 20:12:43
application/xhtml+xmlだった

265:デフォルトの名無しさん
09/08/23 20:45:19
>>264
まあ、IEは8になってもそれを解釈できないんだけどな
これはIEというよりはWindowsも含めた問題かもしれんけど

266:デフォルトの名無しさん
09/08/24 00:10:37
>>262
xは規約がガチガチすぎたわりには
使い勝手がよくなかった。

初心者向きでもなかったし、
HTMLというのはもっと気軽に書けるべきもの。

267:デフォルトの名無しさん
09/08/24 00:33:24
xhtmlの存在意義はxmlパーサでパースできることかと
htmlのいいパーサがあればそれでいいんだけどね

268:デフォルトの名無しさん
09/08/24 11:52:05
> 初心者向きでもなかったし、
> HTMLというのはもっと気軽に書けるべきもの。

という思想の人が、入れ子が互い違いになってたり、
どうにもパースに困るようなコンテンツの量産を奨励するわけですね。

269:デフォルトの名無しさん
09/08/24 12:24:42
手軽に書きたい人は手書きで書くなよ。

270:デフォルトの名無しさん
09/08/24 12:33:10
そーいやホームページビルダーってまともになったの?

271:デフォルトの名無しさん
09/08/24 12:38:34
むしろ、手軽に書きたいから手書きなんだが

272:デフォルトの名無しさん
09/08/24 12:55:02
HTML5はムダにアグレッシブすぎるよね。
誰得つか、理想論すぎる印象が強い。
成功しないと思うんだが。


273:デフォルトの名無しさん
09/08/24 13:51:30
俺はWYSIWYG嫌いだったし、手書きも面倒だと思ってたから
タグエディタっての使ってたな
基本機能としては普通の色分け付きエディタなんだけど
各種タグ補完やタグの一覧からの選択ができて
各タグごとのオプションがダイアログでも弄れたり、整合性チェックやプレビューのついてるやつ

274:デフォルトの名無しさん
09/08/24 15:09:17
>>266
html5が初心者に優しいかどうかと言ったら全然そんなこと無いと思うけど
そもそもhtmlの仕様上タグを省略してよい箇所を完全に把握できる時点で初心者じゃない
ブラウザ間の解釈の相違もあるし初心者こそタグの省略をすべきではない

>>272
xhtml2と比較したらまだマシだろw
それに実装を先行させてるからそれほど仕様と実装が乖離するとも思えない

275:デフォルトの名無しさん
09/08/24 15:53:03
xhtml2は本当に誰得だったな。
5はIE以外ではすぐに実装されるだろうな。

276:デフォルトの名無しさん
09/08/24 23:02:26
HTML5はブラウザベンダー主導で策定していて、
複数のブラウザで実装されたら仕様にするというやり方にしているので、
XHTML2のようなことにはならないかと。

277:デフォルトの名無しさん
09/08/25 09:00:33
そうやってがんばってHTML5がリリース
されても、どうせIE+SLが勝つ気がする。


278:デフォルトの名無しさん
09/08/25 10:20:57
SLって何かと思ったらSilverlightか。


279:名無し学生
09/08/25 10:37:16
Visual Basic の課題で困っております。
誰かお答えください。本当に助けてください。

1.Visual Basicの関数で数値を文字に直すCStr()とStr()の違いについて

2.戻り値の違いが確認できる方法を考え、戻り値の違いについて実際に確認し、
  その確認方法と違いを具体的に述べよ。
注意:実際にやったことと、確認した違いを簡潔かつ具体的に書くこと。

3.下記の計算結果などから、Visual Basicで計算できる数値の桁数について考察をまとめ、
  何故そのような制限があるかについて理由を答えよ
  1) 48 x 100 - 81
  2) 12 ÷ 9.3 x 247
  3) 0.2 - 12 ÷ 69
  4) -12 ÷ 100 + 100

280:デフォルトの名無しさん
09/08/25 11:22:29
>>279
help読みなよ。
学生なんだから、その位やりさない

281:デフォルトの名無しさん
09/08/25 11:24:59
マルチポスト報告スレ
スレリンク(tech板)

スレリンク(tech板:688番)
スレリンク(tech板:183番)
スレリンク(tech板:793番)
スレリンク(tech板:388番)
スレリンク(tech板:601番)
スレリンク(tech板:408番)
スレリンク(tech板:711番)
スレリンク(tech板:279番)
スレリンク(tech板:60番)
スレリンク(tech板:937番)
スレリンク(tech板:963番)
スレリンク(tech板:547番)
スレリンク(tech板:861番)
スレリンク(tech板:420番)


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5388日前に更新/165 KB
担当:undef