関数型プログラミング言語Haskell Part18
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/03/16(金) 21:54:23.92ttp://www.haskell.org/
日本語サイト
ttp://www.sampou.org/cgi-bin/haskell.cgi
ttp://www.shido.info/hs/
過去ログ
関数型プログラミング言語Haskell
Part1 ttp://pc.2ch.net/tech/kako/996/996131288.html
Part2 ttp://pc2.2ch.net/test/read.cgi/tech/1013846140/
Part3 ttp://pc8.2ch.net/test/read.cgi/tech/1076418993/
Part4 ttp://pc8.2ch.net/test/read.cgi/tech/1140717775/
Part5 ttp://pc8.2ch.net/test/read.cgi/tech/1149263630/
Part6 ttp://pc11.2ch.net/test/read.cgi/tech/1162902266/
Part7 ttp://pc11.2ch.net/test/read.cgi/tech/1174211797/
Part8 ttp://pc11.2ch.net/test/read.cgi/tech/1193743693/
Part9 ttp://pc11.2ch.net/test/read.cgi/tech/1211010089/
Part10 ttp://pc12.2ch.net/test/read.cgi/tech/1231861873/
Part11 ttp://pc12.2ch.net/test/read.cgi/tech/1252382593/
Part12 ttp://hibari.2ch.net/test/read.cgi/tech/1272536128/
Part13 ttp://hibari.2ch.net/test/read.cgi/tech/1286706874/
Part14 ttp://hibari.2ch.net/test/read.cgi/tech/1299385928/
Part15 ttp://hibari.2ch.net/test/read.cgi/tech/1310199414/
Part16 ttp://toro.2ch.net/test/read.cgi/tech/1317958045/
Part17 ttp://toro.2ch.net/test/read.cgi/tech/1325510368/
0412デフォルトの名無しさん
2012/05/25(金) 14:57:09.79とても特殊な場合とはどんな場合なんでしょうか?
0413デフォルトの名無しさん
2012/05/25(金) 18:04:21.990414デフォルトの名無しさん
2012/05/25(金) 18:10:07.540415デフォルトの名無しさん
2012/05/25(金) 18:26:23.52その筋の人だ!
0416デフォルトの名無しさん
2012/05/25(金) 18:53:57.14裏街道ばかり来てるな。
0417デフォルトの名無しさん
2012/05/25(金) 19:32:56.19>>411
元々のお二人の訳も素晴らしいのですが、さらにかなりレビューされていて
とてもわかりやすくて良いと思います。
ただ、原文のブロークンな調子を踏襲して訳されているので、
そういうのが嫌いな方には不向きかも知れません。
内容的には、すごいH本の方が、関数型言語の初心者には
分かりやすいと思います。
0418デフォルトの名無しさん
2012/05/25(金) 19:41:28.34大まかで良いので教えていただけるとありがたいです
0419デフォルトの名無しさん
2012/05/25(金) 19:50:41.63普通でない人は、*.cabal ファイルをテキストエディタで修正する。
私は普通でない人なんで、どんどん書き換える。
もちろん異常が無いかどうかはできるだけ検証するが。
0420デフォルトの名無しさん
2012/05/25(金) 22:05:05.22フリー版+3000円の価値があるかが問題…
0421デフォルトの名無しさん
2012/05/25(金) 22:22:11.53もし主目的が、Haskell の関する他人の文章を楽しむことではなく、
あくまで Haskell を学ぶことであるまなら、
フリー版でよく分らない部分をここで訊いて、
それでも納得できなければ買う、というのはどうだろうか
0422デフォルトの名無しさん
2012/05/25(金) 23:00:34.35オーム社でやってるレビュー方式には参加したことがあるからだいたい雰囲気分かるわ。藁
訳は期待してるわ。by 411
0423デフォルトの名無しさん
2012/05/25(金) 23:02:51.97英語の洋書に一度は手を出したい→原著サイトでしばらく格闘してみる。
オンラインで読むのは嫌目がしょぼしょぼするし、頭に入るきがしない。英語は好き→原著でどうぞ
英語は苦手。→強烈なH本をどうぞ。
0424デフォルトの名無しさん
2012/05/26(土) 18:43:17.15http://estore.ohmsha.co.jp/titles/978427406885P
0425デフォルトの名無しさん
2012/05/26(土) 22:19:42.130426デフォルトの名無しさん
2012/05/26(土) 23:21:27.870427デフォルトの名無しさん
2012/05/26(土) 23:46:47.63ttp://d.hatena.ne.jp/keigoi/20120526/sugoih
0428デフォルトの名無しさん
2012/05/27(日) 15:53:38.46探せど探せど見つからなくて困ってます。
0429デフォルトの名無しさん
2012/05/27(日) 16:04:40.54意味が分らん。
cabal ファイルは Linux も Windows も関係ないだろ。
自分でパッケージを作りたいのなら cabal ファイルも自分で書くし、
Hackage から落としてきたパッケージなら展開したディレクトリ内に入ってる。
0430デフォルトの名無しさん
2012/05/27(日) 18:58:41.69ディストリのパッケージになってる奴の*.cabalファイルならソースパッケージを展開すると入ってると思います。
0432デフォルトの名無しさん
2012/05/28(月) 02:19:34.53*** WARNING: /home/hi/Haskell is writable by someone else, IGNORING!
*** WARNING: /home/hi/Haskell/.ghci is writable by someone else, IGNORING!
.ghci
:set prompt "ghci> "
設定も反映されないし、よくわからん。
0433デフォルトの名無しさん
2012/05/28(月) 02:57:35.460434デフォルトの名無しさん
2012/05/28(月) 07:48:02.06ワーニングの英語には、これと似た内容が書いてある。
http://www.google.co.jp/search?hl=ja&q=.ssh+%E3%83%91%E3%83%BC%E3%83%9F%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3
それでも分からなかったら、ワーニングの一部コピペしてググってみよう。
0435デフォルトの名無しさん
2012/05/28(月) 11:53:23.620436デフォルトの名無しさん
2012/05/28(月) 20:58:20.92ボスキャラでも登場するのか
0437デフォルトの名無しさん
2012/05/28(月) 21:11:31.730438デフォルトの名無しさん
2012/05/28(月) 21:18:48.900439デフォルトの名無しさん
2012/05/28(月) 21:20:36.83へいおまち
http://www.youtube.com/watch?v=lySjinT6f0A#t=1m55s
0440デフォルトの名無しさん
2012/05/28(月) 21:22:04.36そりゃもっともだと思うと同時に、そういう話じゃねぇだろと思ったな。
0441デフォルトの名無しさん
2012/05/28(月) 21:33:48.96とか今では言われているが
0442デフォルトの名無しさん
2012/05/28(月) 21:42:05.41修正の必要はない
0443ぬるぽ
2012/05/28(月) 22:03:46.93nativeの発音聞いたことないけど
0444デフォルトの名無しさん
2012/05/28(月) 22:16:32.090445デフォルトの名無しさん
2012/05/28(月) 22:28:44.290446デフォルトの名無しさん
2012/05/28(月) 22:44:59.51エディットコントロールをエジットコントロールと言っていて、
もの凄く違和感を覚えた記憶がある。
でもよく考えてみれば、エジソンと同じなんだよな。
0447デフォルトの名無しさん
2012/05/28(月) 22:46:22.72アメリカ人は普通にバーリボーだったけどなぁ。
0448デフォルトの名無しさん
2012/05/28(月) 23:34:37.100449デフォルトの名無しさん
2012/05/28(月) 23:38:13.93下記のことがラッパーでは実現不可能なら一から作ることになる。
例えば、ボタンを押すとラベルの文字が変わる処理を記述したい場合、
素の gtk2hs や wx なら、ボタンのイベントハンドラに登録した関数内で、
ラベルのプロパティに対して set 関数を使って値を書き換える感じだと思う。
これはあまりに手続き的でムカムカしてくる。
こうではなく、ボタンのイベントに反応するプロパティ型を作り、
それをラベルのプロパティに最初に設定した後は変更(再設定)しない。
イベントが起きなくても、起きても、自動的に文字が設定される。
プログラマはイベント時に何が起きるかを時系列にそって設定するのではなく、
プロパティが何に対してどう反応し、どう変化するかを定義する。
これができれば、いくぶん宣言的で心地よい。
私みたいな者が考える事なんて既にいろんな人が考えていると思うんだが、
このような仕組みを作る上で、参考になりそうな資料はないだろうか。
0450デフォルトの名無しさん
2012/05/28(月) 23:48:03.500451デフォルトの名無しさん
2012/05/29(火) 08:41:21.130452432
2012/05/29(火) 09:40:44.70chmod 700 Haskell/
で解決した。
Haskell/もパーミッションいじらないといけなかった。
なんで設定ファイルがない時は普通に動くのに、
設定ファイルを置くと警告が出るのか意味がわからない。
0453デフォルトの名無しさん
2012/05/29(火) 09:44:25.92できない文盲です、って大声で自分で言いふらして嬉しいのか?
0454デフォルトの名無しさん
2012/05/29(火) 10:09:31.31初心者でごめんね。
0455デフォルトの名無しさん
2012/05/29(火) 10:15:28.140456デフォルトの名無しさん
2012/05/29(火) 10:48:28.720457デフォルトの名無しさん
2012/05/29(火) 11:32:31.620458デフォルトの名無しさん
2012/05/29(火) 12:02:42.500459デフォルトの名無しさん
2012/05/29(火) 12:48:14.86初期化スクリプトみたいなファイルを誰でも編集可能だと、たとえば自分の
ファイルを全部消す、みたいな悪意ある記述を追加されるかもしれない、
という前提を知らないと、英語が読めてもわからないかもしれない。
ていうか >>434 を華麗にスルーしちゃダメだろ。
0460デフォルトの名無しさん
2012/05/29(火) 12:52:44.84まだ調べ始めたばかりだけど、求めているモノとは何となく違う感じがする。
decorator の機能を使ってイベント処理している例をいくつか見てみたけど、
結局イベントハンドラの中で描画関数を呼んだり、計算したりしている。
つまり、>>449 の「素の gtk2hs や wx なら」の部分と
本質的に何も変わらないのではないだろうか。
もちろん、自分でももう少し詳しく調べてはみるが。
>>451
言葉が足りず申し訳ない。
これが FRP の一つの形態になっている事は分ってた。
(リアクティブシステムの構築を関数型っぽく記述する事)
Haskell で使えるFRPライブラリにも色々あって、
たとえば Yampa の仕組みや実装をいくら調べたところで
>>499 のような事の実現に直接役立つわけではない(実際色々調べた)。
>>499 に繋がるような何かキーワードはないだろうか。
0461デフォルトの名無しさん
2012/05/29(火) 15:16:16.96Prelude> succ 1.000022342
2.0000223420000003
0462デフォルトの名無しさん
2012/05/29(火) 15:27:06.590463デフォルトの名無しさん
2012/05/29(火) 15:36:37.09リアクティブプログラミングする仕組みを導入すると
正に>>449のような書き方になるね。
しかし、あれをHaskellでどうやったら再現できるのかはさっぱりわからん。
やってる事は、依存関係のあるキャッシュの管理と似てるので
キャッシュを持つサーバの仕組みなんかが参考になりそうだが・・・
0464デフォルトの名無しさん
2012/05/29(火) 16:02:10.76色々調べてたのなら既知かもしれんが
プロパティを設定するというのはwxパッケージの提供するインタフェースに似てるな
このプロパティは実質IO aとa -> IO ()のペアにすぎんのだけど、それなりに>>449で述べてるようなのに近いように思う
これとFRPの組み合わせはreactive-banana-wxパッケージでプロパティやイベントをEventやBehaviorとして
リアクティブシステム内で扱えるような補助関数を提供してる
参考になる記事としてはreactive-bananaの作者のblogとか
0465449, 460
2012/05/29(火) 19:46:57.92知ってるものも、知らなかったものも、色々キーワードが出てきた。
それぞれの関連も含めて調べてみる。
本棚の肥やしになってる "Pro WPF in C# 2008" もやっと役立つ日が来たかも。
アドバイスを受けて、Heinrich Apfelmus のブログをちょっと見てみたけど、かなり面白い。
まとまった時間が取れる休日にでも本格的に読んでみるよ。
(Conal Elliott のブログより読みやすい英語だ)
wx のプロパティは gtk2hs のそれや OpenGL の StateVar と似たようなモノで、
やはり「値」を設定したり取得したりするものという以上のモノではないのでは。
その値はあくまでそのプロパティの意味する値そのもので、
例えば text プロパティなら String 型しか受け付けない。
そこに「ユーザーが何かした時にはある文字になる」という IO String の値を
設定することはできない。
一応繰り返しておくと、次のような考え方が wx や gtk2hs などのものと思う。
ボタンが押されたイベントでは何を処理するのか?
・初めにラベルの文字を変え
・次にテキストボックスの背景色を変え
・最後にボタンを不活性にする
このような手続き的なものを、次のように宣言的にしたい。
ラベルの text プロパティとは何か?
・ボタンプッシュイベントで文字を変えるものだ
テキストボックスの bgclolor プロパティとは何か?
・ボタンプッシュイベントで色を変えるものだ
ボタンの enable プロパティとは何か?
・ボタンプッシュイベントで False になるものだ
0466デフォルトの名無しさん
2012/05/29(火) 22:36:50.20w :: Frame
b :: Button
t :: TextBox
l :: Label
pushEvent :: Button -> Event ()
text :: Prop w String
bgcolor :: Prop w Color
enable :: Prop w Bool
w <- frame [text := const "hoge", show := const () <$> createEvent w]
t <- textbox [bgcolor := changeColor <$> pushEvent b]
l <- label w [text := changeString <$> pushEvent b]
b <- button w [enable := const False <$> pushEvent b]
こういうのが思い浮かんだ
wxのプロパティやイベントの型をEventなりBahaviorの形式にしただけだが
>>465の最後の記述のような捉え方は自然に出来る書き方にはなってると思う
今のreactive-bananaでDoRecが使えるなら
頑張ってwx-coreパッケージ直接叩いてこういうインターフェースの高水準ライブラリ書くのは可能な筈
0467デフォルトの名無しさん
2012/05/29(火) 22:42:05.220468デフォルトの名無しさん
2012/05/29(火) 23:08:01.19[1,3,5]
*Main> ['1','3'..'6']
"135"
*Main> [1.0,3.0..6.0]
[1.0,3.0,5.0,7.0]
なんでFloatのリストでやったときだけこうなるの?
0469449, 460
2012/05/29(火) 23:21:17.86text :: Prop w String
これらは Prop ではなく Attr なのでは?
それはともかく、具体的なアイデアありがとう。
イメージとしてはかなり近いと思う。
参考にして考えてみる。
0470449, 460
2012/05/29(火) 23:22:12.75それも一部に含まれているが、ちょっと違う。
手続き型と宣言型の違いが明確に現れるようにイベントハンドラを例にしたが、
あるプロパティの値が依存する先(ソース)はイベントハンドラだけではなく、
別のウィジェットのプロパティという可能性もある。
例えば、何か絵をプレビューするウィジェットの enable プロパティが、
複数のチェックボックスのプロパティに依存していたり。
この場合、手続き型なら、両方のチェックボックスの check プロパティを調べ、
両方 True ならプレビューウィジェットの enable プロパティを True にする、
という処理を両方のチェックボックスのイベントハンドラに記述する。
(当然実際は、同じひとつのイベントハンドラを両方に設定するなど省力化するが)
これを、例えば次のように記述できたら宣言的で分りやすいと思う。
(擬似的に wx っぽく書くと)
p <- image w [ enable := checked c1 <&> checked c2 ]
本質的には、イベントの発生やプロパティの変化を「伝搬」させたい。
それができれば部品単位でイベントハンドラを書くこともできる、という事。
0471デフォルトの名無しさん
2012/05/29(火) 23:42:10.94きっと難しくなる要因は純粋言語だというところにありそう。
0472449, 460
2012/05/29(火) 23:52:06.14すまん例が悪かったか。
べつに手続きっぽく書くのが難しい訳ではない。
observerパターンの様に書くこともできる。
私が単に関数型言語で手続きっぽく書くのをキモイと感じるから、
なんとか宣言的に書けないかと、そっちの方で苦心してるだけだ。
私がもし純粋でない OCaml にはまっていても、
きっと同じように宣言的に書けないか考えていたと思う。
0473デフォルトの名無しさん
2012/05/30(水) 00:10:30.62editはエディットです
0474デフォルトの名無しさん
2012/05/30(水) 04:38:33.680475デフォルトの名無しさん
2012/05/30(水) 05:55:52.9972倍の高速化ならよく聞く話。
0476デフォルトの名無しさん
2012/05/30(水) 05:57:49.10http://qiita.com/items/a372458d171e373285b1
これとか当社比400倍とか
0477デフォルトの名無しさん
2012/05/30(水) 07:00:18.280478デフォルトの名無しさん
2012/05/30(水) 13:39:02.030479デフォルトの名無しさん
2012/05/30(水) 14:15:16.61DPが動的計画法のことだと知るまで5分も費やしてしまった
GTAに至ってはグランドセフトオート (ry
0480デフォルトの名無しさん
2012/05/30(水) 14:28:51.43たのしく学ぼう! ||
人 _ |-|
旦/○\日
目 ァイリ |-|
/ ̄ ̄ ̄ ̄ ̄\
□-□ U |
| .|ι |
旦ノノ||  ̄ ̄ ||
AAなんてあったのね
0481デフォルトの名無しさん
2012/05/30(水) 15:27:23.39さっき本屋で見てきたんだけど、B5大型本を想像していたので文庫本+αのサイズが意外だった。電車の中でも読めるね。
中身も読みやすく編集されているようで、これからHaskellやって見ようという人にはお勧めだと思う。
ステマでした
0482デフォルトの名無しさん
2012/05/30(水) 16:13:11.04でも...お高いんでしょう?
0483デフォルトの名無しさん
2012/05/30(水) 16:19:47.250484デフォルトの名無しさん
2012/05/30(水) 17:21:21.37あと今すごいH本第一章読み終わったけど
結構誤植があった。
0485デフォルトの名無しさん
2012/05/30(水) 17:51:41.910486デフォルトの名無しさん
2012/05/30(水) 18:14:21.05やめとけよ
そこの場所のリファクタリング始めたら「引力」だって存在しねーし
熱エネルギーも存在しねーから
その部分は俺が研究してきた事と酷似する
俺はアルゴリズムの中から、変数を抹消し、
ソースコードは再帰で圧縮
そして残ったものは、何もなかった
1が残ると思ってたが、予想を超えて、「それ」は0になった
重力がいらないとかいっちゃうと、0に近づくんだよ
わかるか
いらなくないんだよ
元々、何もないところに「重力」ってものを「わざわざ」冗長させて定義したんだよ
何もわかってねーな科学者
リファクタリングし続けた後に、宇宙に存在する最後の1とは、時空のねじれによって出来る固体のみで
その時空のねじれを解けば1であった存在は0になり、文字通りなにもなくなる 世界の終わり
0487デフォルトの名無しさん
2012/05/30(水) 18:16:30.430488デフォルトの名無しさん
2012/05/30(水) 18:35:37.430489デフォルトの名無しさん
2012/05/30(水) 19:26:23.540490デフォルトの名無しさん
2012/05/30(水) 20:12:32.98コードがなくなる話。
0491449, 460
2012/05/30(水) 20:38:17.19Float と Double の Enum インスタンスにおいて
enumFromThenTo 関数は次のように定義されている。
enumFromThenTo = numericEnumFromThenTo
numericEnumFromThenTo n n' m = takeWhile p (numericEnumFromThen n n')
where
p | n' >= n = (<= m + (n'-n)/2) -- <-- 注目
| otherwise = (>= m + (n'-n)/2)
numericEnumFromThen n m = iterate (+(m-n)) n
例えば [1.0,3.0..6.0] とやったら、6.0 以下の間は差分ずつ増やすのではなく、
「6.0 + 差分の半分」以下の間は差分ずつ増やす計算になってる。
つまり、7.0 以下の間は差分ずつ増やすので、最後は 6.0 ではなく 7.0 で終わる。
こういう仕様になっている理由は、本当のところは正直よく分らない。
一応理由として思いつくのは、浮動小数点による誤差の蓄積の問題を回避するため
ではないかという事。
0492デフォルトの名無しさん
2012/05/30(水) 20:57:45.88最後は唯の数式になるって話でしたよね
バグ0で何よりも高速に動作し使用メモリも0
0493デフォルトの名無しさん
2012/05/30(水) 21:28:17.18そんな話題があったな。
0494デフォルトの名無しさん
2012/05/31(木) 01:03:20.681 == 1
上と下が同じなのは面白いなぁ。
0495337
2012/05/31(木) 02:37:13.13(== 1) 1
全部同じ (^^)
0496デフォルトの名無しさん
2012/05/31(木) 07:43:22.77誤植が多少あったけど、日本語訳に違和感はなかった。
PerlとJavaScriptで自サイトを作ってる趣味プログラマーだけど、プログラミングの幅を広げようと
思い、プログラミングHaskell -> Real World Haskellの半分までを読んでから、すごいHを読んだ。
後半は全くの初心者には、やっぱりちょっと難しいかなと思った。
これから、Real World Haskellの残り半分を読みます。
0497デフォルトの名無しさん
2012/05/31(木) 08:34:14.43直訳のままじゃねーの?って所が所々あったよ。
0498デフォルトの名無しさん
2012/05/31(木) 09:23:22.240499デフォルトの名無しさん
2012/05/31(木) 11:03:03.470500デフォルトの名無しさん
2012/05/31(木) 11:11:02.75p.385 誤:VirePatterns 正:ViewPatterns
0501デフォルトの名無しさん
2012/05/31(木) 12:12:22.41両方を含むリストは作れません。
ここはタプルだろ?
0502デフォルトの名無しさん
2012/05/31(木) 12:13:09.98最下段
ジッパーみたいに一つのリストにします。
ここはタプルだろ?
0503デフォルトの名無しさん
2012/05/31(木) 12:15:22.87bが斜辺より長いような不要なトリプルを調べないような
ここはaだろ?
0504デフォルトの名無しさん
2012/05/31(木) 12:21:40.860505デフォルトの名無しさん
2012/05/31(木) 12:26:11.65"…ペアとトリプル両方を含むリストは作れません。このため、
ベクトルを表すにはタプルを使ったほうがはるかに有利です。"
何もおかしいことは言ってないと思うよ。
p.19上の方では図形を表すのに頂点のリストとして図形を表す試みとして
[[Int]] なんかを考えようとしてる。つまりベクトルをリストとして与えようとしてる。
この方式について検討するとベクトルの表現に使われてるリストは長さ
固定ではないので2次元と3次元のベクトル(頂点データ)が混在したリストが
出来てしまうという難点があることが指摘されている。
一方、頂点の表現としてリストの代わりにタプルを使うならば標準のリストは
homogeneousでなければならないという縛りのおかげで2次元と3次元の
頂点データが混在したリストは作れない事になり、コンパイラがはねてくれる。
[(Int,Int)] か [(Int,Int,Int)]のどっちかになるはずだからな。
そんなわけで
"…ペアとトリプル両方を含むリストは作れません。このため、
ベクトルを表すにはタプルを使ったほうがはるかに有利です。"
という事になる。
0506デフォルトの名無しさん
2012/05/31(木) 12:30:42.06タプルのリストにしてくれるという意味で「一つのリストにしてくれます」と言ってると思うんだけど。
んーあれだな、本気でわからないのか些細な説明省略を鬼首で騒いでるのかわからん。
前者なら真面目に相手するけど後者ならあんま相手にしたくないなぁ。
後者ならSICPの日本語訳がクソすぎる和田は日本語がわかってない
とか該当スレで騒いでるほうが賛同者多くて楽しいと思うよ。
0507デフォルトの名無しさん
2012/05/31(木) 12:36:10.34> とか該当スレで騒いでるほうが賛同者多くて楽しいと思うよ。
YA・ME・TE
SICPスレが機能停止しっぱなしでげんなりしてるんだから
0508デフォルトの名無しさん
2012/05/31(木) 12:46:06.630509デフォルトの名無しさん
2012/05/31(木) 12:55:15.84むしろこっちの詳細はよ
0510502
2012/05/31(木) 12:59:07.14p21の
zipの使用例で作成されているのはタプルだから
一つのタプルにしますという意味のほうが
日本語として自然なのではないですか?
:t zip
zip :: [a] -> [b] -> [(a, b)]
と:tで見ると2つのリストを受け取って、返り値がタプルになってます。
表現方法で、
(a, b)はタプルで
[(a, b)]もタプルですよね。
0511デフォルトの名無しさん
2012/05/31(木) 13:01:16.68いやいや、(a, b)はタプルで[(a, b)]は 「タプルのリスト」だよ
■ このスレッドは過去ログ倉庫に格納されています