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

関数型プログラミング言語Haskell Part23

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトのモナドさん2013/08/10(土) NY:AN:NY.AN
関数型プログラミング言語 Haskellについて語るスレです。

前スレ: 関数型プログラミング言語Haskell Part22
http://toro.2ch.net/test/read.cgi/tech/1364009659/

haskell.org
http://www.haskell.org/

日本語サイト
http://www.sampou.org/cgi-bin/haskell.cgi
http://www.shido.info/hs/

過去ログ (10〜)
Part21 ttp://toro.2ch.net/test/read.cgi/tech/1358702176/
Part20 ttp://toro.2ch.net/test/read.cgi/tech/1350428908/
Part19 ttp://toro.2ch.net/test/read.cgi/tech/1340760070/
Part18 ttp://toro.2ch.net/test/read.cgi/tech/1331902463/
Part17 ttp://toro.2ch.net/test/read.cgi/tech/1325510368/
Part16 ttp://toro.2ch.net/test/read.cgi/tech/1317958045/
Part15 ttp://hibari.2ch.net/test/read.cgi/tech/1310199414/
Part14 ttp://hibari.2ch.net/test/read.cgi/tech/1299385928/
Part13 ttp://hibari.2ch.net/test/read.cgi/tech/1286706874/
Part12 ttp://hibari.2ch.net/test/read.cgi/tech/1272536128/
Part11 ttp://pc12.2ch.net/test/read.cgi/tech/1252382593/
Part10 ttp://pc12.2ch.net/test/read.cgi/tech/1231861873/
0655デフォルトの名無しさん2013/10/03(木) 00:43:10.99
>>651
ん?何を言ってんだお前は?
クズみたいな回答してるお前はまじこのスレの恥
さっさと消えろ
0656デフォルトの名無しさん2013/10/03(木) 00:44:25.01
ハーWWWWWWWWW
責任もって嘘教えた>>651はもうこのスレにこないでください
金輪際PHPをかたるのやめてくださいねw

>>653
震え声?
なにびびってんだ?
ガンガンたたけ
0657デフォルトの名無しさん2013/10/03(木) 00:45:03.54
もういいよ
このスレ壊そう
0658デフォルトの名無しさん2013/10/03(木) 00:46:14.18
>>653
知った相手に震えるとかカスだな
お前も同等のゴミ
MVCとかいってる情報乞食も同等の雑魚
0659デフォルトの名無しさん2013/10/03(木) 00:46:55.95
やだよ
何一人で決めちゃってんの?
0660デフォルトの名無しさん2013/10/03(木) 00:50:50.66
っとなげくクズでした
0661デフォルトの名無しさん2013/10/03(木) 01:04:05.37
Haskellerの欠点は
プライド高い奴が多すぎて
チームプレーが出来ない所
0662デフォルトの名無しさん2013/10/03(木) 01:06:24.96
っと天才肌の一匹狼に憧れるクズであった
0663デフォルトの名無しさん2013/10/03(木) 01:10:56.97
Haskell初めて数ヶ月たつのですが
まだまだ使い慣れていません
オーダーは間違っていないと思うんですが
作業終盤にあたって盛り返すことができずやられてしまいます
どうすればいいんでしょうか?
やっぱりバフはくるのでしょうか?
不安です
朝鮮鯖でプレーしていますが
自分はマイクロ操作に自信があるのですが・・・それでも未だにプラチナ昇格できません
勝つ方法教えてください
0664デフォルトの名無しさん2013/10/03(木) 01:13:45.00
>>663
下手糞noobはきえろ
アインストールしろクズw
何で負けてるのにやるの?Mなの?気持ち悪いよ

>>658
情報乞食ってゆうけど
ここも教えて君ばっかりになっちゃったね(^^;
なんてゆーか荒らしばっかり
まともに会話すらできないもん
0665デフォルトの名無しさん2013/10/03(木) 01:14:28.43
もうやめて!!!
前のHaskellスレに戻って!!!
0666デフォルトの名無しさん2013/10/03(木) 01:15:30.02
戻りません
0667デフォルトの名無しさん2013/10/03(木) 01:40:34.05
スルー推奨
0668デフォルトの名無しさん2013/10/03(木) 01:41:50.88
>>663
開始3分裏小屋からのエジ鎌ラッシュ。これで勝つる
0669デフォルトの名無しさん2013/10/03(木) 02:11:52.87
>>668
おっ こんな所でRoRが出てくるとは思わなんだ
0670デフォルトの名無しさん2013/10/03(木) 08:48:08.58
>>654
ありがとうございます
f :: [Int] -> IO [Int]
f (x:xs) = ..
case r of
[] -> f xs
r -> [r]
のように f を再帰で書き直せばできます
0671デフォルトの名無しさん2013/10/03(木) 10:01:59.98
rを計算する部分だけを切り出した g :: Int -> Maybe Int を作って takeWhile すればよくね?
0672デフォルトの名無しさん2013/10/03(木) 10:26:44.48
Haskellは結局、かけた時間が最も大事。ただ、時間をかければいいってものではなく、ちゃんと意味のある時間のかけ方をしないとダメ。
密度の濃い時間にするというか。
RPGなんかと違って、たたかうを選んでればレベルが上がるわけではないので
0673デフォルトの名無しさん2013/10/03(木) 10:28:06.01
>>668>>663
ゲームッカスは消えろ


>>672
Haskellなんてのは有り体に言って戦争なんだから、 場に出してるお互いのカードに文句を言う意味はない。
相手のカードが揃っていないなら虫けらのように潰せばいいだけ。
他にいい方法があればデッキを組み直すだけ。
0674デフォルトの名無しさん2013/10/03(木) 10:28:55.28
Haskellの向き不向きってのを見極めるのが難しい。
というかHaskell自体趣味だからエンジョイ勢は一生気持ちよくなれる選択肢をやっていけば良い。
でも勝ちたい奴はそこを我慢して自分という人間と状況に合った選択肢を選ばなければならない。
これはHaskellをする上で明確に意識しなければいけない
0675デフォルトの名無しさん2013/10/03(木) 10:29:47.05
っとゲームで例えるクズでした(苦笑)
0676デフォルトの名無しさん2013/10/03(木) 10:49:33.38
Haskellってもしかしてファンよりアンチの方が多いんじゃ・・・
0677デフォルトの名無しさん2013/10/03(木) 11:10:53.99
>>670
なんでfを書き換える話になってるんだw

>>648に戻ると、(>>654も言ってるように)リストを前から辿る関数を書きたいなら
愚直に再帰で書けばいい

a648 :: (Int -> IO (Maybe Int)) -> [Int] -> IO (Maybe Int)
a648 f [] = (ここを埋める)
a648 f (x:xs) = (ここを埋める)

これができたら、foldrを使って書き直すのは簡単なので好みで
ただし、それ以上かっこよく書くのは標準ライブラリでは無理だと思う
標準に付け加えるとしたら、
newtype MonadicFind m a = MonadicFind (m (Maybe a))
instance (Monad m) => Monoid (MonadicFund m a) where...
とかかな
0678デフォルトの名無しさん2013/10/03(木) 11:24:45.51
元はリストの先頭から計算結果を返すものだけ評価したいという話なのに
なんでfoldrが出てくるのか理解できないんですけど
0679デフォルトの名無しさん2013/10/03(木) 11:28:08.09
>>663
軸は3つある。
戦闘で勝つこと、欲張ること、相手のワーカーを狩ること。
戦闘で勝つために必要なのは編成とマイクロだ。相手より強い編成を作り、上手く扱えたほうが勝つ。
欲張るために必要なものは、すべてのHaskellが最初から手にしている。
Haskellというのは結局のところ定点防衛力に優れた種族だということである。
Bunkerがある。動けないが序盤に倍のMarineの攻撃を守れる。
Tankがある。シージすると動けないが先にシージしたほうが強い。自陣にいれば先にシージできる。
そうそう攻め切れない。しかしだからといって攻めたら勝てないわけではない。
0680デフォルトの名無しさん2013/10/03(木) 11:28:54.78
>>663

Haskellの考察

ワーカーを狩ればユニットの量が変わってくる。すぐに勝つことはできなくても5分後に勝つことは容易である。
Haskellの防衛力が高いといっても、Haskellの防衛戦力は中々動けないのである。変なところからくるハラスへの対応には手間取りやすい。つまりワーカーを狩る隙がある。
しかし正面からくるユニットにはこの防衛力が多大な働きをする。普通地上からベースへの入り口は一つしかないのだからTankが動けなくても問題はない。
つまり乱暴にいうとハラスで攻めてTankで守るか、欲張ってTankとハラス対策ユニットで守ればいいということである。
もちろん他にもTankを使わずに動きまわるビルドがあったりAirが絡んだりと色々なジャンケンが存在する。重要なのはいかにして編成差を作れるか、内政差を作れるかである。
06816632013/10/03(木) 11:29:58.57
参考になりました
ありがとうございます
0682デフォルトの名無しさん2013/10/03(木) 11:34:09.06
>>678
リストを前から順番に処理する関数は大抵foldrで書ける
0683デフォルトの名無しさん2013/10/03(木) 11:48:33.14
Control.Monad.Loopsをつかう
0684デフォルトの名無しさん2013/10/03(木) 12:30:40.73
>>682
あの、そういうことじゃないんですよ。
たとえば、sequence の実装は↓のように foldr つかってるんだけど
すべてのmonadicな値を*評価*してしまうんです。

sequence ms = foldr k (return []) ms
where
k m m' = do { x <- m; xs <- m'; return (x:xs) }

>>648の要求は「条件が合ったら以降のリスト要素を評価したくない」といっていて、
あなたの回答は要件を満たせていませんよと言ってるんです。
0685デフォルトの名無しさん2013/10/03(木) 12:49:57.96
へーhaskellのfoldrって前から処理なんだ
0686デフォルトの名無しさん2013/10/03(木) 12:55:59.78
>>684
途中で処理を止めるのも問題なくできるよ
答を書いてしまうと、

a648 :: (Int -> IO (Maybe Int)) -> [Int] -> IO (Maybe Int)
a648 f l = foldr g (return Nothing) l
 where
  g x next = do
   r <- f x
   case r of
    Nothing -> next
    Just v -> return (Just v)

-- てすと
main = a648 f [0..10] >>= print
 where
  f i = do
   print i
   return $ if odd i then Just i else Nothing
0687デフォルトの名無しさん2013/10/03(木) 15:03:14.26
遅延評価は難しいね〜
0688デフォルトの名無しさん2013/10/03(木) 16:53:16.72
私はHaskellを続けるよ
0689デフォルトの名無しさん2013/10/03(木) 17:42:54.96
runMaybeT . foldr mplus mzero . map MaybeT
0690デフォルトの名無しさん2013/10/03(木) 17:44:28.46
おっと、foldr mplus mzero は msum だったか
06916772013/10/03(木) 17:57:12.47
>>689
それ気づかなかったわ
標準ライブラリでかっこよく書けない云々は間違いだった。すまん
(「標準ライブラリ」の定義が曖昧なのは気にしないことにして)
0692デフォルトの名無しさん2013/10/03(木) 18:49:01.55
Hackage 見たら MaybeT 二つあったし、標準って感じじゃないよな。
モナドになると気づけば、Hackage にあるのは間違いないから探すだけだった。
0693デフォルトの名無しさん2013/10/03(木) 19:17:45.26
transformersはHaskell Platformに入ってるからある意味標準と言って良いと思う
(Haskell2010にはないから、その意味では標準じゃない)
0694デフォルトの名無しさん2013/10/03(木) 19:34:45.70
>>676
そりゃあんだけ型が合わないだのなんだのコンパイラに突っぱねられれば怨みも持つさ

インテリにいびられるストレスと似たものを感じるからね

これを克服するには自分もインテリ気質にならざるを得ない
0695デフォルトの名無しさん2013/10/03(木) 23:29:35.77
ちょっと教えて欲しいんだけど
・遅延評価のメリット
・Haskellで書けるプログラムの範囲
この2点が様々なブログを読んでも抽象的にしか書いてないんだけど
この辺ちゃんと説明してくだちぃ
0696デフォルトの名無しさん2013/10/03(木) 23:58:38.25
>>695
正直、真面目に答えて欲しいのなら真面目に訊いてこい、と言いたい。


それはそれとして、抽象的なのがちゃんとしていないというのなら、
具体例を挙げればいいのか?

・遅延評価のメリット
素直に計算式を書くだけで、余計な計算をしない処理をしてくれる。
例えば画像処理で、画像に回転を施してからトリミングするとする。
Haskell ならこの通りに素直に (trim . rotate) という関数を画像に適用すれば、
トリミングで失われる画素の回転処理は自動的に省かれる。

・Haskellで書けるプログラムの範囲
質問の意図が分からん。
この範囲までだよと言ったら、君はそれ以上の可能性は一切排除してしまうのか?

逆に訊きたいが、Java や C や Python などで書けるプログラムの範囲などはどうなんだ?
0697デフォルトの名無しさん2013/10/04(金) 00:08:30.36
むしろHaskell以外の言語は書けるプログラムの範囲を具体的に定めているのかと聞きたい
0698デフォルトの名無しさん2013/10/04(金) 01:00:54.59
みんなHaskellを特別視してる
クラス委員長のように取っ付きにくいと思って攻め倦ねてる
0699デフォルトの名無しさん2013/10/04(金) 01:06:02.03
>・遅延評価のメリット
たらい回し関数なんかの場合の遅延評価の恩恵は、別にHaskellである必要はなく、
クロージャを備えた言語ならどれでもできる
Haskellならではといえば、ループをリスト処理に簡単に落とし込めるということかな
逐次IO処理をリスト処理で行えるのは思考とコードの節約にもなり、高アドバンテージ

>・Haskellで書けるプログラムの範囲
チューリング完全な以上、どの高級言語も同じ範囲に収まっている
対象の分野に対して記述しやすく実行効率の良い言語を選ぶしかない
なんでもかんでもHaskellで書こうというのは我慢フェチの変態オナニー
0700デフォルトの名無しさん2013/10/04(金) 03:53:39.34
>>698
それです

>>699
あー、すごいわかりやすい、やはり言語ごとの得手不得手で使い分けですね
逐次IO処理ってForeachループ内の処理を共通メソッド化できるって考えですかね?
だとしたら無名関数便利だからJavascriptやラムダ式が便利ってのと何が違うんですかね
0701デフォルトの名無しさん2013/10/04(金) 05:53:38.68
もちろん言語は適材適所で使い分けなんだけど、
Haskellに関しては得手不得手がそこまではっきりしてないので、
「なんでもかんでもHaskellで書こう」という奴が多いように見えるかも
個人的には、「PCで動くプログラムはOSとゲーム以外全部Haskellで書く」
くらいの選択はおかしくないと思う
0702デフォルトの名無しさん2013/10/04(金) 07:28:19.50
>>696 の意見はスルーか

何度やられても、この寂しさには慣れん・・・
0703デフォルトの名無しさん2013/10/04(金) 07:40:48.98
>>702
態度が説教臭い上に挙げてる例が非現実的だからだろ
ピクセル単位で評価を遅延してたらオーバーヘッドがきつ過ぎで使いものにならん

構って欲しいならセックスでも配信してりゃいいんじゃね
0704デフォルトの名無しさん2013/10/04(金) 07:46:17.18
遅延評価の利点ってそんなにないと思う
強いて挙げるなら>>699の言ってる遅延リストとか、あとはDSLで再帰的な定義が書けるとか

後者の例は、たとえば文字列から式を読むパーサを書く場合、
parseExpr :: Parser Expr
parseExpr = (IntE <$> parseInt) <|> (string "(" <* parseExpr *> string ")") <|> ...
みたいに(細部は適当)書きたいんだけど、
遅延評価でなければparseExprが無限再帰を起こす
0705デフォルトの名無しさん2013/10/04(金) 08:46:07.76
なるべくimmutableなデータを使うことで
プログラムの見通しが良くなるのが関数型のメリットなんだけど

例えばリストがimmutableだと、mapを実装するときに正格評価では
末尾再帰にしないとスタックオーバーフローする可能性があるし、
末尾再帰にすると最後にreverseが必要な実装になっちゃうんだよね
でも遅延評価だとそれが無いのがメリット
0706デフォルトの名無しさん2013/10/04(金) 09:23:50.48
デフォルトで遅延評価でないような実装(eager haskell)でも遅延評価を扱う仕組みは用意されているんだろうな
0707デフォルトの名無しさん2013/10/04(金) 12:38:50.03
>>703
Repa でピクセル単位で画像処理しているのだが
0708デフォルトの名無しさん2013/10/04(金) 12:43:59.63
>702 :デフォルトの名無しさん:2013/10/04(金) 07:28:19.50
>俺 >>696 の意見はスルーか
>何度やられても、この寂しさには慣れん・・・

こういうクズにはクズのレスの1個前、1個後にレスつけて
クズがスルーされてる感を出すのが効くんだよなぁww

クズの書き込みIDが696だったら すぐさま自作自演で695と697へアンカw
それにはさまれたクズの書き込みはアンカがついてないのでスルーされている(笑)

これがめちゃくちゃ効く(笑)
0709デフォルトの名無しさん2013/10/04(金) 12:45:09.27
>>708
何でそんな心に響く書き込みできるの?
何で?
0710デフォルトの名無しさん2013/10/04(金) 12:46:37.90
>>702
あなたのようなレス乞食は社会から必要とされてない
お亡くなりください

>>708
それやるとそいつの書き込みだけ惨めに見えますね
0711デフォルトの名無しさん2013/10/04(金) 12:48:44.30
>>708
四面楚歌スルーと命名しよう
サンドイッチスルーでもいいですね
いじめスルーですか?
もっといい名前ありますか?
孤立スルー
0712デフォルトの名無しさん2013/10/04(金) 13:50:04.61
今日からLeksahでハスケります
よろしくお願いしますm(_ _)m
07137002013/10/04(金) 13:51:04.75
>>712です
0714デフォルトの名無しさん2013/10/04(金) 14:06:00.44
>>711
他にネーミングないか?
>>710
だなレス乞食みたいなクズはこのスレにいらない
早急西ねってかんじだな
0715デフォルトの名無しさん2013/10/04(金) 14:08:21.33
>>711
ん?いじめでよくねw

>>714
まあそうカッカするな
コリアンかもしれないしな
スンドウゥブはうまいけどコリアンハスカーはいただけないぜ
0716デフォルトの名無しさん2013/10/04(金) 14:10:00.15
このスレ機能してねーじゃん
どうしたんだよ
0717デフォルトの名無しさん2013/10/04(金) 17:40:42.04
>>714
シケイン(スルー)
0718デフォルトの名無しさん2013/10/04(金) 19:57:03.46
ブッコワレケル!!
0719デフォルトの名無しさん2013/10/04(金) 23:04:53.10
(a, b, c, d) <- (,,,) <$> newIORef [] <*> newIORef [] <*> newIORef [] <*> newIORef []
これって fold と replicate 4 (new IORef []) で書ける?
0720デフォルトの名無しさん2013/10/04(金) 23:28:07.92
>>707
Repa って並列で実行とかじゃないの?
ピクセル単位で遅延って感じになるの?
0721デフォルトの名無しさん2013/10/04(金) 23:29:56.93
そもそも trim . rotate の遅延って怪しいけど
0722デフォルトの名無しさん2013/10/05(土) 00:21:36.88
Amazonで Haskell で洋書検索したらアダルト商品ばっかりで吹いた
0723デフォルトの名無しさん2013/10/05(土) 00:29:29.72
>>722
いや・・・出た事無いけど・・・。
普段から検索してる物で検索結果が変わったりするんだろうか・・・
0724デフォルトの名無しさん2013/10/05(土) 00:38:33.68
もしかして私だけ?
http://www.dotup.org/uploda/www.dotup.org4553317.jpg
0725デフォルトの名無しさん2013/10/05(土) 01:06:19.39
女だ!2chに女が出たぞー!焼き払えー!
0726デフォルトの名無しさん2013/10/05(土) 02:44:21.78
どうやら Spencer Haskell さんというエロ小説家がいるようだ
0727デフォルトの名無しさん2013/10/05(土) 03:52:38.15
ファイルのMD5ハッシュ値を取り扱うライブラリを推薦してください
0728デフォルトの名無しさん2013/10/05(土) 06:54:17.61
>>719
[a,b,c,d] <- replicateM 4 (newIORef [])

-- Control.Monadのソースから
replicateM n x = sequence (replicate n x)
sequence ms = foldr k (return []) ms
where k m m' = do { x <- m; xs <- m'; return (x:xs) }
0729デフォルトの名無しさん2013/10/05(土) 07:57:35.49
>>724
普段エロばかり検索してるんだからもう
…というわけではなくソート順を「出版年数が新しい順番」にすればうちでもなるよ
0730デフォルトの名無しさん2013/10/05(土) 09:34:18.29
>>728
ありがとう
確かにタプルに拘る理由は無かった
0731デフォルトの名無しさん2013/10/05(土) 12:55:47.35
すごいH
0732デフォルトの名無しさん2013/10/05(土) 18:05:23.42
はっかったっのっ
0733デフォルトの名無しさん2013/10/06(日) 01:34:23.60
PHPとかWEBプログラミングやってる人スカイプしてくれ
色々教えてくれ
treesnake2ですじゃあよろしく
0734デフォルトの名無しさん2013/10/06(日) 01:35:04.28
>>733
友達になりましょう
0735デフォルトの名無しさん2013/10/06(日) 01:38:29.21
教えがいがありますね
0736デフォルトの名無しさん2013/10/06(日) 17:42:31.35
>>733
コンタクト送りました
0737デフォルトの名無しさん2013/10/06(日) 17:43:34.02
>>733
ん?いちいちここで募集するな
わかったか
LINEで募集かけてこいやキチガイ
0738デフォルトの名無しさん2013/10/06(日) 17:46:01.69
駅員「乗車券とかはお餅ですか?」
733「いえ、ちがいます」
駅員「いや、ちがうじゃなくて、お餅じゃないんですか?」
ぼく「酢イカはあるけどお餅じゃないです」
駅員「お餅の酢イカは残高不足ですが、
お金があればお餅の酢イカにチャージできますよ」
733「すっぱそうですね」
駅員「お金はお餅ですか?」
733「ちがいます」
駅員「えっ」
733「えっ」
駅員「はぁ?お金もお餅じゃないのですか?」
733「あたりまえじゃないですか」
駅員「ちょっとこい」
0739デフォルトの名無しさん2013/10/06(日) 19:02:23.55
ぼく「酢イカはあるけどお餅じゃないです」

これ何なの?
0740デフォルトの名無しさん2013/10/06(日) 19:13:54.67
酢イカ is not equal お餅
0741デフォルトの名無しさん2013/10/06(日) 21:41:08.46
is not equal toな
0742デフォルトの名無しさん2013/10/06(日) 23:39:46.15
doesn't equal
0743デフォルトの名無しさん2013/10/07(月) 00:01:17.15
そういうことじゃなくて、

ぼく「酢イカはあるけどお餅じゃないです」

これだけ取ってつけた感じでわざとらしい
言い回しも変だし

この「ぼく」は何を勘違いしたらこのセリフが自然に出てくる?
0744デフォルトの名無しさん2013/10/07(月) 00:20:06.00
気にするな
Haskellできない奴が頑張って作ったんだ
なぜここに貼ったのかわからないし
元ネタのコピペに全然追いつけてないけど
それでも誰かが頑張って作ったものではあるんだ
0745デフォルトの名無しさん2013/10/07(月) 09:35:10.68
>>743はICOCA圏在住
0746デフォルトの名無しさん2013/10/07(月) 09:38:33.09
move743 :: ICOCA a -> ICOCA a
0747デフォルトの名無しさん2013/10/07(月) 09:48:22.67
記者の眼 - Haskell使いの高頻度取引の会社にお邪魔した:ITpro
http://itpro.nikkeibp.co.jp/article/Watcher/20131003/508622/
0748デフォルトの名無しさん2013/10/07(月) 12:07:38.58
ここがcamlspotterさんの会社?
0749デフォルトの名無しさん2013/10/07(月) 12:25:45.86
きゃみば様はスタンダードチャターズ
鶴はmaoeさんとあと一人は忘れた
0750デフォルトの名無しさん2013/10/07(月) 12:26:23.95
スタンダードチャータード
0751デフォルトの名無しさん2013/10/07(月) 16:42:29.88
>>747
華やかそうでええのう・・・。

というか、優秀な外国人がどこでも出来る仕事をわざわざ日本にきて
やってることに驚いたw
0752デフォルトの名無しさん2013/10/07(月) 17:37:20.14
Haskellって実社会で役に立ってんの?
0753デフォルトの名無しさん2013/10/07(月) 18:06:52.86
さぁね (・∀・)ニヤニヤ
0754デフォルトの名無しさん2013/10/07(月) 19:29:25.68
2+2=5
■ このスレッドは過去ログ倉庫に格納されています