関数型プログラミング言語Haskell Part26
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/07/27(日) 13:46:32.03ID:deqguEnhhaskell.org (公式サイト)
http://www.haskell.org/
前スレ
関数型プログラミング言語Haskell Part25
http://peace.2ch.net/test/read.cgi/tech/1393313450/
0449デフォルトの名無しさん
2014/11/13(木) 23:19:59.71ID:8WQaaDuGelereaはドキュメントに用例が多くて助かります。
https://hackage.haskell.org/package/elerea-2.7.0.2/docs/FRP-Elerea-Simple.html
特に、A longer example の節は必見
GUIアプリの例。解説のHTMLが同梱されています
https://hackage.haskell.org/package/elerea-examples
0450デフォルトの名無しさん
2014/11/13(木) 23:41:31.63ID:iWKxp8OY多謝
0451デフォルトの名無しさん
2014/11/14(金) 14:21:56.46ID:WNZtrPXa加速度を積分して速度、積分して位置にしたり。
リストのスクロールを摩擦係数をいじって減速度合いを変えたり。
0452デフォルトの名無しさん
2014/11/14(金) 14:36:53.44ID:+69VmKY1elereaのSignalはMonadだからやりたい放題できるからそれに慣れると分ける意味わからんよな
0453デフォルトの名無しさん
2014/11/14(金) 22:26:54.48ID:WNZtrPXaワイ「わーい」
0454デフォルトの名無しさん
2014/11/14(金) 23:05:43.56ID:DkHiTH1Y0455デフォルトの名無しさん
2014/11/14(金) 23:52:30.13ID:qCbHalO3久しぶりに読みにくい日本語に出会った
0456デフォルトの名無しさん
2014/11/15(土) 03:09:27.49ID:TFMH5uTn予約の話をしよう、あれは今から36万・・・いや、1万4000年前だったか、
まぁいい、私にとってはつい昨日の予約だが、君たちにとっては多分明日の予約だ
0457デフォルトの名無しさん
2014/11/15(土) 07:17:39.36ID:YUaatuso6日に http://gihyo.jp/book/2014/978-4-7741-6926-2
と併せて予約したのにまだ片方さえ届かないのか
Amazonは発売日に届くように逆算して発売日前から発送してくれないのかよ
何のための予約だよ(日記帳終わり)
0458デフォルトの名無しさん
2014/11/15(土) 08:34:31.54ID:H+rNrAzt0459デフォルトの名無しさん
2014/11/15(土) 15:15:48.89ID:6XZYIjlt0460デフォルトの名無しさん
2014/11/15(土) 16:10:01.92ID:sWhlw3Sr評価する
0461デフォルトの名無しさん
2014/11/15(土) 16:33:34.62ID:RGetlYiU0462デフォルトの名無しさん
2014/11/15(土) 17:04:09.67ID:VFt6Efys0463デフォルトの名無しさん
2014/11/15(土) 19:09:22.58ID:LR57/AKQ0464デフォルトの名無しさん
2014/11/15(土) 21:11:35.46ID:/FINKz8Gどんな良書も一瞬でただの資源ごみだからな
読みにくいって
文意を理解できないから主語を誤魔化すために省くとか全体の流れが分からないから指示語をそのままとかそういうレベル?
それとも直訳過ぎて日本語に馴染んで無いとか?
0465デフォルトの名無しさん
2014/11/15(土) 21:21:47.87ID:sWhlw3Sr0466デフォルトの名無しさん
2014/11/15(土) 23:55:43.29ID:sS71apjVelerea を使って Event を理解できたのなら、
elerea 以外のも触ってみれば Behavior もちゃんと理解できると思う。
なんで Behavior の方は実物に一度も触れずに人に聞くの?
>>447
「概念」といったら、Behavior は時間を引数にとった連続関数、
Event は時間と値のペアのストリームだ。
Behavior がしっくりくるシーンの代表は >>451 が挙げている。
二人も、その他の FRP に興味がある人も、
古典「The Haskell School of Expression」を読んで、
簡単な FRP の仕組みを自分で作ってみることをお勧めする。
この本に書かれた方法はスペースリークを起こす事が既に知られてるが、
概念とその実装の「基礎知識」を学ぶにはとてもよい本だ。
他の FRP を学ぶ上でもこの知識はきっと役立つ。
0467デフォルトの名無しさん
2014/11/16(日) 00:35:43.95ID:A54MayZ4おお!ありがとう。誤解があるようだけど、俺は445でかつ451なんだ。
FRPは基本的な概念がまだ揺蕩っている気がする。
Conal Elliot がブログで Garbage Collecting the Smantics of FRPとか言っていて、"時間の関数だというなら任意の時刻にタイムスリップできなきゃならないが、実際にはできない、おかしい"って言ってる。
Javascript界隈で定評のあるBacon.jsは同氏によって"紛い物"扱いされている(理由はBehaviorが無いから)。
黎明期のFRPはスペースリークとかあったらしいけど、今のFRPはいろんなテクを駆使して問題を克服したようだ。
シンプルで分かりやすく、ゲームアプリに使われた事のあるelerea は、残念なことにpull式で、アイドリング時の計算力が無駄なので、最近、push版、ordreaが出来た。
しかし驚くなかれ。ordreaのBehavior には、delayがある。
繰り返す、delayがある。
…Behavior は"時間の関数"じゃなかったのか??
ごく最近、FRPはComonadicにすべきだ、という声を聞くようになった。
何故Comonadic? 理由がよく分からないし、その実装は未だ現れていない。
…そんな感じで、色々混乱がみられるようなので、正直突っ込んでいくのが怖い、"差し足忍び足"でにじり寄っている、訳なのです。
0468デフォルトの名無しさん
2014/11/16(日) 00:40:11.44ID:A54MayZ4Arrowだから? なんで?
0469デフォルトの名無しさん
2014/11/16(日) 09:00:25.19ID:0kiSer6o理解できなきゃあまり意味がない、自分が最先端にいるような気になるだけだ。
そんなことより、理解できるところまで時代をさかのぼって、
「自分で実装しながら」ゆっくり学んだ方がいい。
使うだけなら道具の仕組みは知らなくてもいいと安心して言える段階までは、
FRP はまだ発達していないと思う。
そういう意味も込めて古典を勧めた。
0470デフォルトの名無しさん
2014/11/16(日) 10:47:38.97ID:BSgxTQPuhttp://i.imgur.com/9CrKJj8.jpg
http://i.imgur.com/WI4JiPE.jpg
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!(日記帳)
0471デフォルトの名無しさん
2014/11/16(日) 10:49:08.23ID:dZjA1otHこうゆうので何するの?
0472デフォルトの名無しさん
2014/11/16(日) 10:50:11.56ID:BSgxTQPu0473デフォルトの名無しさん
2014/11/16(日) 10:57:29.61ID:O/HDzlyF0474デフォルトの名無しさん
2014/11/16(日) 11:00:06.30ID:BSgxTQPu画質は今本質的問題なのだろうか
0475デフォルトの名無しさん
2014/11/16(日) 11:18:24.45ID:O/HDzlyF( ゚д゚)ポカーン
0476デフォルトの名無しさん
2014/11/16(日) 11:21:30.50ID:BSgxTQPu0477デフォルトの名無しさん
2014/11/16(日) 11:39:39.31ID:0kiSer6o0478デフォルトの名無しさん
2014/11/16(日) 11:54:58.67ID:BSgxTQPu0479デフォルトの名無しさん
2014/11/16(日) 12:04:37.22ID:0kiSer6o第**章は〜〜だから##という人には読む価値あるとか、
〜〜の意味が分からないんだがとか。
0480デフォルトの名無しさん
2014/11/16(日) 12:41:45.03ID:h/BFfBTxhttps://github.com/simonmar/par-tutorial/blob/master/code/Sudoku.hs
0481デフォルトの名無しさん
2014/11/16(日) 18:57:25.78ID:DSW7+wxdどうにも腰を据えてやるのが面倒おじさんだ!
0482デフォルトの名無しさん
2014/11/16(日) 23:46:13.69ID:SPZ76mJJsort([]) = []
sort([a]) = [a]
sort(a:as) = if a<head(sort(as)) then a:sort(as) else head(sort(as)):sort(a:tail(sort(as)))
トレースすれば正しいことは分かるんだけど、ごちゃごちゃしすぎて、いざ自分で書けと言われても書けない
覚え方とかある?vbだともっと簡単に書けるのに〜。
0483デフォルトの名無しさん
2014/11/17(月) 00:11:16.80ID:y9knIlZH0484デフォルトの名無しさん
2014/11/17(月) 00:41:19.55ID:JCmU98W/東京電力福島第一原子力発電所の事故が起きた
直後に茨城県内で採取された大気中のチリから、
ウランのほか原子炉内の構造物の素材が検出され、
分析に当たった研究グループは早い段階から
大規模な原子炉の破損が進んでいたことを裏付ける結果だとして、
さらに分析を進めることにしています。
東京理科大学の中井泉教授らの研究グループは、
福島第一原発の事故直後の3月14日の夜から翌朝にかけて
原発から130キロ離れた茨城県つくば市で
採取した大気中のチリを兵庫県にある
大型の放射光施設「スプリング8」で分析しました。
その結果、放射性セシウムのほか、ウランや
燃料棒の素材のジルコニウム、圧力容器の素材の鉄など、
核燃料や原子炉内の構造物と一致する物質が
検出されたということです。
0485デフォルトの名無しさん
2014/11/17(月) 03:35:50.14ID:hLMcf2Z5MArrayかMVector使えばいいと思うよ
0486デフォルトの名無しさん
2014/11/17(月) 05:38:52.09ID:AbWjP/0Sこのソースのことは忘れて「haskell 挿入ソート」あたりでググるのおすすめ
0487デフォルトの名無しさん
2014/11/17(月) 06:35:19.84ID:QJkSjCVsハッカーの楽しみ以来の脳の軋みwwwwwww
登場する学生四天王が天才過ぎるwwwwwJackにすら勝てる気がしねぇwwwwww
0488デフォルトの名無しさん
2014/11/17(月) 06:50:49.07ID:BFTy11pzordreaにdelayがあるのは、elereaやordreaでは時間は離散的にしか進まないから
0489デフォルトの名無しさん
2014/11/17(月) 08:18:43.21ID:8RP3+bwS短い会話からも、奴らの頭の良さがにじみ出てる
あんな学生が普通にいたら死ねる
0490デフォルトの名無しさん
2014/11/17(月) 11:06:41.87ID:qgSbIZK10491デフォルトの名無しさん
2014/11/17(月) 11:55:09.24ID:JCmU98W/福島県の下水処理場から放射性ヨウ素を744Bq/kg検出
10月下旬頃からヨウ素の検出量が増加傾向
東京や山梨の処理場でもヨウ素
0492デフォルトの名無しさん
2014/11/17(月) 11:57:08.85ID:JCmU98W/2013年11月11日 55万ベクレル
2013年11月25日 91万ベクレル
2013年12月 4日 130万ベクレル
2013年12月12日 180万ベクレル
2013年12月19日 190万ベクレル
2013年12月26日 210万ベクレル
2014年 1月 9日 220万ベクレル
2014年 1月13日 240万ベクレル
2014年 1月16日 270万ベクレル
2014年 1月20日 310万ベクレル
2014年 2月 6日 500万ベクレル
2014年 3月 公表なし←(絶対ここでなんかあったろw)
2014年 4月 公表なし←
2014年 5月 公表なし←
2014年 6月 公表なし←
2014年 7月 ガレキ4兆ベクレル発覚も、公表せず←!?
2014年 8月 公表なし←
2014年 9月 公表なし←
2014年10月 公表なし←
2014年11月 再臨界してたわ←【今ここ】
0493デフォルトの名無しさん
2014/11/17(月) 12:57:56.42ID:OB81v1Lm社会人が八時間働くからそういう設定なんだと
日本のモラトリアムとは格が違うな
0494デフォルトの名無しさん
2014/11/17(月) 13:32:47.89ID:VgYWB20P0495デフォルトの名無しさん
2014/11/17(月) 16:54:09.37ID:AddMZ2qD0496デフォルトの名無しさん
2014/11/17(月) 17:06:16.83ID:QJkSjCVsわかってます。
ordreaでは
Event : pushなシグナル
Behavior : pullなシグナル
に過ぎなくて、完全に実装側の都合になってしまっているんです。
細かいパフォーマンスチューンの為に便利なのは嬉しいけど、Behaviorが本来持っていた概念としての分かりやすさ、エレガントさは失われてる。
今の俺のスキルでは、どうすればいいのか分からないので、勧めてもらったとおりSOEを読んで実装してみることにします。
…でもその前に、目の前にあるキラキラしたグリーンの本をやっつけなくては。
0497デフォルトの名無しさん
2014/11/17(月) 17:09:00.58ID:QJkSjCVs0498デフォルトの名無しさん
2014/11/17(月) 17:20:36.77ID:voo8eoNBhttp://i.imgur.com/DTVCgJ0.jpg
http://i.imgur.com/ASFTXZK.jpg
http://i.imgur.com/3o3vsjy.jpg
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0499デフォルトの名無しさん
2014/11/17(月) 18:00:23.77ID:QJkSjCVsお!そっちの方も来たんだ!
俺はお金なくて買えなかったけど(ヽ´ω`)、後半が面白そうなんだよねえ
感想よろしく
> 数独
ワロタ
0500デフォルトの名無しさん
2014/11/17(月) 20:54:59.66ID:nGO8OPEK0501デフォルトの名無しさん
2014/11/17(月) 22:31:59.02ID:2JrgHRvL0502デフォルトの名無しさん
2014/11/17(月) 22:34:27.53ID:syCsv4O30503デフォルトの名無しさん
2014/11/17(月) 22:49:14.27ID:nGO8OPEKバリバリの数値計算というと例えば?
0504デフォルトの名無しさん
2014/11/17(月) 23:09:07.19ID:2JrgHRvLとりあえず、ガウスの消去法
IORefやSTモナドなしだと、200×200で反応が返ってこなくなったから
0505デフォルトの名無しさん
2014/11/17(月) 23:19:12.75ID:nGO8OPEK数値計算は手段ではなく目的?
リストだけでどこまで速度上げられるかとか、パズルを解くみたいな?
0506デフォルトの名無しさん
2014/11/17(月) 23:31:00.84ID:2JrgHRvL0507デフォルトの名無しさん
2014/11/18(火) 00:00:04.08ID:tPZakqViHaskellから型推論を取ったら、IORef禁止みたいな風潮だけが残るので
0508デフォルトの名無しさん
2014/11/18(火) 01:48:53.67ID:VVZUudvp0509デフォルトの名無しさん
2014/11/18(火) 02:03:55.59ID:ifNBpZ/j0510デフォルトの名無しさん
2014/11/18(火) 02:17:48.61ID:VVZUudvpよかった。
0511デフォルトの名無しさん
2014/11/18(火) 02:54:53.40ID:wWmOGLrhIORefありだとサンプルコードがたくさん落ちてるんですが
0512デフォルトの名無しさん
2014/11/18(火) 06:19:58.70ID:kNmk90Po0513デフォルトの名無しさん
2014/11/18(火) 06:20:29.45ID:rqEbaZI00514デフォルトの名無しさん
2014/11/18(火) 07:29:07.78ID:VVZUudvpIORef use
IORefuse
0515デフォルトの名無しさん
2014/11/18(火) 11:26:42.95ID:VVZUudvp0516デフォルトの名無しさん
2014/11/18(火) 11:39:31.80ID:/vvH7+qL0517デフォルトの名無しさん
2014/11/18(火) 17:49:10.66ID:VJRmI7w/数値計算することと、その結果を OpenGL が扱える形に加工することは別だと思うが。
0518デフォルトの名無しさん
2014/11/18(火) 20:54:45.29ID:zT9F6uSW人間が見やすく出力することまで含めてアルゴリズムです
0519デフォルトの名無しさん
2014/11/18(火) 22:09:58.52ID:uPPCqZ2T0520デフォルトの名無しさん
2014/11/18(火) 22:23:32.75ID:zT9F6uSW0521デフォルトの名無しさん
2014/11/18(火) 22:41:39.96ID:VJRmI7w/冗談で言っているのは分かっているが、その冗談が全く面白くないので敢えてマジレスする。
問題を幾つかのより小さな部分問題に分けるべきだ。
それはそうと、数値計算した結果を基にポリゴンデータを作り、
それを頂点バッファに入れて描画するんだよな。
どこに IORef が出てくる余地があるんだろ。
0522デフォルトの名無しさん
2014/11/18(火) 23:09:39.35ID:zT9F6uSWグローバル座標に対するポリゴンデータのローカル座標や角度をIORef の変数に入れておく
0523デフォルトの名無しさん
2014/11/18(火) 23:50:49.80ID:rqEbaZI0それならIORefは原理的に避けられないんじゃない?
0524デフォルトの名無しさん
2014/11/19(水) 00:12:45.58ID:iJeLzP9T0525デフォルトの名無しさん
2014/11/19(水) 00:38:14.27ID:+lGGt82vIORefかSTモナドを利用せずに、モデルをくるくる動かす方法を知らない
0526デフォルトの名無しさん
2014/11/19(水) 01:07:49.10ID:iJeLzP9Tイベントハンドラを登録しなおせばいいんだよ。
イベントが発生した時点で、次の状態遷移用のイベントハンドラを新たに作って、それで置き換える。
0527デフォルトの名無しさん
2014/11/19(水) 02:38:01.95ID:xfpEOWrn60年後のごちうさ
0528デフォルトの名無しさん
2014/11/19(水) 06:45:34.30ID:WtffXByM最近日記帳やら原発やら上の画像やらぽよやらスレの私物化が目立ちます
粛清していきましょう
0529デフォルトの名無しさん
2014/11/19(水) 13:11:24.21ID:OfAlx19R0530デフォルトの名無しさん
2014/11/19(水) 13:45:28.57ID:nUINe3lughciやghcが動くことは確認できていて、ghc-mod, hlintを導入してvimの開発環境を整えていざプロジェクトをつくろうとしたのですが、 `cabal install --enable-test`をするとregex-posixのbuildに失敗してしまいます.
エラーメッセージを読んでみましたが改善策がわかりません。ご教授いただけないでしょうか
ghc -- 7.8.3
cabal -- 1.20.0.3
です
以下,
`cabal install --enable-test --only-dependency`時のエラー部分です.
Building regex-posix-0.95.2...
Preprocessing library regex-posix-0.95.2...
ld: library not found for -lgmp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
linking dist/build/Text/Regex/Posix/Wrap_hsc_make.o failed (exit code 1)
command was: /usr/bin/gcc dist/build/Text/Regex/Posix/Wrap_hsc_make.o dist/build/Text/Regex/Posix/Wrap_hsc_utils.o -o dist/build/Text/Regex/Posix/Wrap_hsc_make
-m64 -L/Users/nao/.cabal/lib/x86_64-osx-ghc-7.8.3/regex-base-0.93.2 -L/Users/nao/.cabal/lib/x86_64-osx-ghc-7.8.3/mtl-2.2.1
-L/Users/nao/.cabal/lib/x86_64-osx-ghc-7.8.3/transformers-0.4.2.0 -L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/containers-0.5.5.1
-L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/bytestring-0.10.4.0 -L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/deepseq-1.3.0.2 -L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/array-0.5.0.0
-L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/base-4.7.0.1 -liconv
-L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/integer-gmp-0.5.1.0 -lgmp -L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/ghc-prim-0.3.1.0 -L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/rts-1.0 -lm -ldl
Installed xml-1.3.13
cabal: Error: some packages failed to install:
regex-posix-0.95.2 failed during the building phase. The exception was:
ExitFailure 1
test-framework-0.8.0.3 depends on regex-posix-0.95.2 which failed to install.
0531デフォルトの名無しさん
2014/11/19(水) 14:43:25.94ID:2Q63zwZ5ld: library not found for -lgmp
なんだからgmpが入ってないのでは?
とりあえずgmpがインストールされてるか確認してみて、なければ入れてみれば
0532デフォルトの名無しさん
2014/11/19(水) 14:44:54.00ID:nUINe3luいま調べていたらmacのgccはllvmのwrapper?らしいので, gccを別で入れなおしてそっちでやってみます
0533デフォルトの名無しさん
2014/11/20(木) 00:02:15.34ID:JlnMRpIf-v とか -v3 とかつけると、詳細なエラーメッセージがみれるよ。
パスが違ってるか、libgmpがおかしいか、だと思う。
0534デフォルトの名無しさん
2014/11/20(木) 00:07:57.61ID:Po2bP3CX0535デフォルトの名無しさん
2014/11/20(木) 00:50:38.85ID:OJJlSD0q0536デフォルトの名無しさん
2014/11/20(木) 17:41:56.95ID:sAQTKHkdなら
T(n) = O(n log n)
なの? なんで?
ワカンネ
0538デフォルトの名無しさん
2014/11/20(木) 18:07:33.93ID:sAQTKHkd極限でとけんの? 教えてクレクレ
0539デフォルトの名無しさん
2014/11/20(木) 18:11:13.19ID:SrHOb8b0T(n) = 2T(n/2) + a * n.
U(n) = T(2^n) とおく。log を 2 を底とする対数関数として、
T(n) = U(log n) = 2T(n/2) + a * n = 2U(log n - 1) + a * n.
N = log n とおくと、
U(N) = 2U(N-1) + a * 2^N.
両辺を 2^N で割ると
U(N)/2^N = U(N-1)/2^(N-1) + a.
よって、
U(N)/2^N = a N.
i.e. U(N) = a N * 2 ^ N.
N = log n. U(N) = T(n) より、
T(n) = a log n * n = O(n log n).
高校レベルの知識で解いたらこうなった
0540デフォルトの名無しさん
2014/11/20(木) 18:59:18.90ID:sAQTKHkd何がワカッテネーのかは判った。TやO同士の四則演算とEqインスタンスだ。
上の証明でいうとO(n)をa*nで置き換えるのがまだ解ってない。
0541デフォルトの名無しさん
2014/11/20(木) 19:16:13.26ID:SrHOb8b0見通しが良いからそう変えただけで、別にそこは置き換えなくても無問題だが。
0542デフォルトの名無しさん
2014/11/20(木) 22:12:13.76ID:JlnMRpIfそお?
オーダ記法のまま
> 両辺を 2^N で割ると
をすると、
O(2^N) / 2^N
になるけど、これって何言ってんだかわかんなくない?
0543デフォルトの名無しさん
2014/11/20(木) 22:30:20.76ID:SrHOb8b0O(1) 以外の何物でもない
0544デフォルトの名無しさん
2014/11/20(木) 22:38:16.17ID:JlnMRpIfうーん、やっぱりその辺がわかってないんだよなぁ。O(1)に等しいのはなんとなく解るけど。。
例えば
O(n) + O(n) = O(n)
の左辺は何を意味してるの?
0545デフォルトの名無しさん
2014/11/20(木) 22:40:30.46ID:M0tgSF32nが大きいとき、ある定数 c が存在して c・n と表現できる
0546デフォルトの名無しさん
2014/11/20(木) 22:45:56.04ID:YOls+I/jじゃなくて
O(n) = f(n) where 定数 a が存在し全ての n に対し f(n)/n < a
とすれば
T(n) - 2*T(n/2) = f(n)
2*T(n/2) - 4*T(n/4) = 2*f(n/2)
4*T(n/4) - 8*T(n/8) = 4*f(n/4)
...
(n/2)*T(2) - n*T(1) = (n/2)*f(2)
T(n) - n*T(1) = f(n) + 2*f(n/2) + 4*f(n/4) + ... + (n/2)*f(2)
T(n) - n*T(1) = n*(f(n)/n + f(n/2)/(n/2) + f(n/4)/(n/4) + ... + f(2)/2)
T(n) - n*T(1) < n*a*log2(n)
0547デフォルトの名無しさん
2014/11/20(木) 23:05:58.21ID:JlnMRpIf巧みだ… それなら納得。
0548デフォルトの名無しさん
2014/11/21(金) 01:49:45.87ID:NEpg6FcOなりすまし死ね
■ このスレッドは過去ログ倉庫に格納されています