トップページtech
981コメント365KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/07/27(日) 13:46:32.03ID:deqguEnh
関数型プログラミング言語 Haskell について語るスレです。

haskell.org (公式サイト)
http://www.haskell.org/

前スレ
関数型プログラミング言語Haskell Part25
http://peace.2ch.net/test/read.cgi/tech/1393313450/
0446デフォルトの名無しさん2014/11/13(木) 21:51:34.46ID:4Xr/dCjq
>>441
Behavior を(も)使った方が解りやすいというタイプの人のためにある。

Behavior よく解らん、Event 解りやすいという人は、Behavior のことは気にしなくていい。

両方使ったり、片方だけで代用したり、いかようにも表現できる。
0447デフォルトの名無しさん2014/11/13(木) 22:11:56.86ID:/hesX7bc
>>446
なんだか、甘味料と砂糖みたいな関係ですね。
晩御飯のすき焼き、甘味料で作ってみようかなあ。

煽りはさておき、Behavior がどういう概念で、どういうシーンでしっくりくるのか、興味があります。
あなたなりの理解を教えていただけると幸いです。
0448デフォルトの名無しさん2014/11/13(木) 22:48:25.29ID:fBmBaE/A
FRP良質入門サイトのURL下さい
0449デフォルトの名無しさん2014/11/13(木) 23:19:59.71ID:8WQaaDuG
>>448

elereaはドキュメントに用例が多くて助かります。
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
>>449
多謝
0451デフォルトの名無しさん2014/11/14(金) 14:21:56.46ID:WNZtrPXa
Behavior って物理シュミレーション的なシーンで便利なんだ。

加速度を積分して速度、積分して位置にしたり。
リストのスクロールを摩擦係数をいじって減速度合いを変えたり。
0452デフォルトの名無しさん2014/11/14(金) 14:36:53.44ID:+69VmKY1
EventではApplicativeが作れないからそれに代わるものが欲しいと
elereaのSignalはMonadだからやりたい放題できるからそれに慣れると分ける意味わからんよな
0453デフォルトの名無しさん2014/11/14(金) 22:26:54.48ID:WNZtrPXa
ジッジ「珠玉のアルゴリズム買ってきたで」
ワイ「わーい」
0454デフォルトの名無しさん2014/11/14(金) 23:05:43.56ID:DkHiTH1Y
Amazon予約したのにまだこない。北海道だからか?
0455デフォルトの名無しさん2014/11/14(金) 23:52:30.13ID:qCbHalO3
感想
久しぶりに読みにくい日本語に出会った
0456デフォルトの名無しさん2014/11/15(土) 03:09:27.49ID:TFMH5uTn
>>454
予約の話をしよう、あれは今から36万・・・いや、1万4000年前だったか、
まぁいい、私にとってはつい昨日の予約だが、君たちにとっては多分明日の予約だ
0457デフォルトの名無しさん2014/11/15(土) 07:17:39.36ID:YUaatuso
>>456
6日に http://gihyo.jp/book/2014/978-4-7741-6926-2
と併せて予約したのにまだ片方さえ届かないのか
Amazonは発売日に届くように逆算して発売日前から発送してくれないのかよ
何のための予約だよ(日記帳終わり)
0458デフォルトの名無しさん2014/11/15(土) 08:34:31.54ID:H+rNrAzt
東京でもまだなんだよなぁ
0459デフォルトの名無しさん2014/11/15(土) 15:15:48.89ID:6XZYIjlt
本当に必要となるまで遅延される
0460デフォルトの名無しさん2014/11/15(土) 16:10:01.92ID:sWhlw3Sr
>>459
評価する
0461デフォルトの名無しさん2014/11/15(土) 16:33:34.62ID:RGetlYiU
俺にはまだ早いということか……、くっ!
0462デフォルトの名無しさん2014/11/15(土) 17:04:09.67ID:VFt6Efys
いつも思うけど、訳が悪いのか、それとも、そもそも英語の状態からして難解なのか…
0463デフォルトの名無しさん2014/11/15(土) 19:09:22.58ID:LR57/AKQ
原著を積んでる俺に隙は無かった
0464デフォルトの名無しさん2014/11/15(土) 21:11:35.46ID:/FINKz8G
悪訳はマジで勘弁
どんな良書も一瞬でただの資源ごみだからな

読みにくいって
文意を理解できないから主語を誤魔化すために省くとか全体の流れが分からないから指示語をそのままとかそういうレベル?
それとも直訳過ぎて日本語に馴染んで無いとか?
0465デフォルトの名無しさん2014/11/15(土) 21:21:47.87ID:sWhlw3Sr
俺は普通に読めてる。今のところ訳に問題は感じてない。ただ、サラサラと読めるかというとそんなことはない。前著の"関数プログラミングの楽しみ"以上に難しい内容。
0466デフォルトの名無しさん2014/11/15(土) 23:55:43.29ID:sS71apjV
>>445
elerea を使って 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
>>466
おお!ありがとう。誤解があるようだけど、俺は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:A54MayZ4
あとYampaも。製作者か誰かが書いた最適化戦略の論文が出回ってて、かなり信頼性高そうだけど、なんか忌避されてる感じがある。理由がよく分からない。
Arrowだから? なんで?
0469デフォルトの名無しさん2014/11/16(日) 09:00:25.19ID:0kiSer6o
FRP に限らんが、最新の動向をニュースのヘッドラインを眺めるように追いかけても、
理解できなきゃあまり意味がない、自分が最先端にいるような気になるだけだ。

そんなことより、理解できるところまで時代をさかのぼって、
「自分で実装しながら」ゆっくり学んだ方がいい。
使うだけなら道具の仕組みは知らなくてもいいと安心して言える段階までは、
FRP はまだ発達していないと思う。

そういう意味も込めて古典を勧めた。
0470デフォルトの名無しさん2014/11/16(日) 10:47:38.97ID:BSgxTQPu
http://i.imgur.com/xwv3Ygg.jpg
http://i.imgur.com/9CrKJj8.jpg
http://i.imgur.com/WI4JiPE.jpg

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!(日記帳)
0471デフォルトの名無しさん2014/11/16(日) 10:49:08.23ID:dZjA1otH
>>470
こうゆうので何するの?
0472デフォルトの名無しさん2014/11/16(日) 10:50:11.56ID:BSgxTQPu
興奮
0473デフォルトの名無しさん2014/11/16(日) 10:57:29.61ID:O/HDzlyF
画質悪っ
0474デフォルトの名無しさん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:BSgxTQPu
やめて!苛めないで!
0477デフォルトの名無しさん2014/11/16(日) 11:39:39.31ID:0kiSer6o
画質というよりは、光の当て方が悪いだけかと
0478デフォルトの名無しさん2014/11/16(日) 11:54:58.67ID:BSgxTQPu
僕はHaskellの事だけ考えたいんです。撮影技術を気にする余力はありません
0479デフォルトの名無しさん2014/11/16(日) 12:04:37.22ID:0kiSer6o
だったら、Haskell の本の写真なんか載せないで、内容を語らないか?

第**章は〜〜だから##という人には読む価値あるとか、
〜〜の意味が分からないんだがとか。
0480デフォルトの名無しさん2014/11/16(日) 12:41:45.03ID:h/BFfBTx
数独ソルバって"Parallel and Concurrent Programming with Haskell"に出てくる↓とは別物なの?
https://github.com/simonmar/par-tutorial/blob/master/code/Sudoku.hs
0481デフォルトの名無しさん2014/11/16(日) 18:57:25.78ID:DSW7+wxd
Haskellやってみたくて入門書何冊かよんだけど
どうにも腰を据えてやるのが面倒おじさんだ!
0482デフォルトの名無しさん2014/11/16(日) 23:46:13.69ID:SPZ76mJJ
Haskell習い立ての者ですが昇順ソートが覚えられません。。。
sort([]) = []
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:y9knIlZH
なんですかこのコードはゴルフですか
0484デフォルトの名無しさん2014/11/17(月) 00:41:19.55ID:JCmU98W/
原子炉破損で燃料のウラン飛散か

東京電力福島第一原子力発電所の事故が起きた
直後に茨城県内で採取された大気中のチリから、
ウランのほか原子炉内の構造物の素材が検出され、
分析に当たった研究グループは早い段階から
大規模な原子炉の破損が進んでいたことを裏付ける結果だとして、
さらに分析を進めることにしています。

東京理科大学の中井泉教授らの研究グループは、
福島第一原発の事故直後の3月14日の夜から翌朝にかけて
原発から130キロ離れた茨城県つくば市で
採取した大気中のチリを兵庫県にある
大型の放射光施設「スプリング8」で分析しました。
その結果、放射性セシウムのほか、ウランや
燃料棒の素材のジルコニウム、圧力容器の素材の鉄など、
核燃料や原子炉内の構造物と一致する物質が
検出されたということです。
0485デフォルトの名無しさん2014/11/17(月) 03:35:50.14ID:hLMcf2Z5
>>482
MArrayかMVector使えばいいと思うよ
0486デフォルトの名無しさん2014/11/17(月) 05:38:52.09ID:AbWjP/0S
>>482
このソースのことは忘れて「haskell 挿入ソート」あたりでググるのおすすめ
0487デフォルトの名無しさん2014/11/17(月) 06:35:19.84ID:QJkSjCVs
珠玉難し過ぎワロタwwwwww
ハッカーの楽しみ以来の脳の軋みwwwwwww
登場する学生四天王が天才過ぎるwwwwwJackにすら勝てる気がしねぇwwwwww
0488デフォルトの名無しさん2014/11/17(月) 06:50:49.07ID:BFTy11pz
>>467
ordreaにdelayがあるのは、elereaやordreaでは時間は離散的にしか進まないから
0489デフォルトの名無しさん2014/11/17(月) 08:18:43.21ID:8RP3+bwS
>>487
短い会話からも、奴らの頭の良さがにじみ出てる
あんな学生が普通にいたら死ねる
0490デフォルトの名無しさん2014/11/17(月) 11:06:41.87ID:qgSbIZK1
オクスフォード大にはあぁいう学生がゴロゴロいるんだろうね
0491デフォルトの名無しさん2014/11/17(月) 11:55:09.24ID:JCmU98W/
放射性ヨウ素、半減期8.02日

福島県の下水処理場から放射性ヨウ素を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
オックスフォードって1日八時間勉強しないとついて行けないカリキュラム設定なんでしょ
社会人が八時間働くからそういう設定なんだと
日本のモラトリアムとは格が違うな
0494デフォルトの名無しさん2014/11/17(月) 13:32:47.89ID:VgYWB20P
てめぇが日本の大学の現状に無知、ということだけはよくわかるよ。
0495デフォルトの名無しさん2014/11/17(月) 16:54:09.37ID:AddMZ2qD
まあいわゆるFランとかは実際モラトリアム
0496デフォルトの名無しさん2014/11/17(月) 17:06:16.83ID:QJkSjCVs
>>488
わかってます。

ordreaでは
Event : pushなシグナル
Behavior : pullなシグナル
に過ぎなくて、完全に実装側の都合になってしまっているんです。
細かいパフォーマンスチューンの為に便利なのは嬉しいけど、Behaviorが本来持っていた概念としての分かりやすさ、エレガントさは失われてる。

今の俺のスキルでは、どうすればいいのか分からないので、勧めてもらったとおりSOEを読んで実装してみることにします。


…でもその前に、目の前にあるキラキラしたグリーンの本をやっつけなくては。
0497デフォルトの名無しさん2014/11/17(月) 17:09:00.58ID:QJkSjCVs
Marrrryyyyyyyyyyy!!!!!! 結婚してくれええええええ
0498デフォルトの名無しさん2014/11/17(月) 17:20:36.77ID:voo8eoNB
http://i.imgur.com/m5IcvPs.jpg
http://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
>>498
お!そっちの方も来たんだ!
俺はお金なくて買えなかったけど(ヽ´ω`)、後半が面白そうなんだよねえ
感想よろしく

> 数独
ワロタ
0500デフォルトの名無しさん2014/11/17(月) 20:54:59.66ID:nGO8OPEK
数独って、もはや Hello world 的な存在だな
0501デフォルトの名無しさん2014/11/17(月) 22:31:59.02ID:2JrgHRvL
数独よりもバリバリの数値計算のHaskell本が欲しいです
0502デフォルトの名無しさん2014/11/17(月) 22:34:27.53ID:syCsv4O3
数独は良問を探すデータマイニング的な存在です
0503デフォルトの名無しさん2014/11/17(月) 22:49:14.27ID:nGO8OPEK
>>501
バリバリの数値計算というと例えば?
0504デフォルトの名無しさん2014/11/17(月) 23:09:07.19ID:2JrgHRvL
>>503
とりあえず、ガウスの消去法
IORefやSTモナドなしだと、200×200で反応が返ってこなくなったから
0505デフォルトの名無しさん2014/11/17(月) 23:19:12.75ID:nGO8OPEK
>>504
数値計算は手段ではなく目的?
リストだけでどこまで速度上げられるかとか、パズルを解くみたいな?
0506デフォルトの名無しさん2014/11/17(月) 23:31:00.84ID:2JrgHRvL
記号処理よりも数値計算の方が、正しい答えが出てきたときに感動するのは俺だけか…
0507デフォルトの名無しさん2014/11/18(火) 00:00:04.08ID:tPZakqVi
型推論が記号処理なので
Haskellから型推論を取ったら、IORef禁止みたいな風潮だけが残るので
0508デフォルトの名無しさん2014/11/18(火) 01:48:53.67ID:VVZUudvp
そうか!並列と並行の決定的な違いは決定的か否かか!
0509デフォルトの名無しさん2014/11/18(火) 02:03:55.59ID:ifNBpZ/j
決定的に間違ってる
0510デフォルトの名無しさん2014/11/18(火) 02:17:48.61ID:VVZUudvp
早期間違いかくにん!
よかった。
0511デフォルトの名無しさん2014/11/18(火) 02:54:53.40ID:wWmOGLrh
数値計算してその結果をOpenGLで表示していろんな角度から見るみたいなやつは、IORef禁止だとどうやるのか知りたいのだが、文献がないです
IORefありだとサンプルコードがたくさん落ちてるんですが
0512デフォルトの名無しさん2014/11/18(火) 06:19:58.70ID:kNmk90Po
なぜIORefを禁止したいのか
0513デフォルトの名無しさん2014/11/18(火) 06:20:29.45ID:rqEbaZI0
IORef って使ったらダメなヤツなん?
0514デフォルトの名無しさん2014/11/18(火) 07:29:07.78ID:VVZUudvp
IORef 使う
IORef use
IORefuse
0515デフォルトの名無しさん2014/11/18(火) 11:26:42.95ID:VVZUudvp
すいません誤爆しました
0516デフォルトの名無しさん2014/11/18(火) 11:39:31.80ID:/vvH7+qL
gnuplotでpoint cloud読み込んで色んな角度から見ればよくね?
0517デフォルトの名無しさん2014/11/18(火) 17:49:10.66ID:VJRmI7w/
>>511
数値計算することと、その結果を OpenGL が扱える形に加工することは別だと思うが。
0518デフォルトの名無しさん2014/11/18(火) 20:54:45.29ID:zT9F6uSW
>>517
人間が見やすく出力することまで含めてアルゴリズムです
0519デフォルトの名無しさん2014/11/18(火) 22:09:58.52ID:uPPCqZ2T
嘘だろ
0520デフォルトの名無しさん2014/11/18(火) 22:23:32.75ID:zT9F6uSW
チューリングマシンでキモとなる部分は実は「出力」です
0521デフォルトの名無しさん2014/11/18(火) 22:41:39.96ID:VJRmI7w/
>>518
冗談で言っているのは分かっているが、その冗談が全く面白くないので敢えてマジレスする。

問題を幾つかのより小さな部分問題に分けるべきだ。


それはそうと、数値計算した結果を基にポリゴンデータを作り、
それを頂点バッファに入れて描画するんだよな。

どこに IORef が出てくる余地があるんだろ。
0522デフォルトの名無しさん2014/11/18(火) 23:09:39.35ID:zT9F6uSW
>>521
グローバル座標に対するポリゴンデータのローカル座標や角度をIORef の変数に入れておく
0523デフォルトの名無しさん2014/11/18(火) 23:50:49.80ID:rqEbaZI0
数値計算した結果を、ドラッグしたりスライダーで調整して見る側面を変えたい、みたいな感じ?

それならIORefは原理的に避けられないんじゃない?
0524デフォルトの名無しさん2014/11/19(水) 00:12:45.58ID:iJeLzP9T
いや、そんなことないか。
0525デフォルトの名無しさん2014/11/19(水) 00:38:14.27ID:+lGGt82v
>>524
IORefかSTモナドを利用せずに、モデルをくるくる動かす方法を知らない
0526デフォルトの名無しさん2014/11/19(水) 01:07:49.10ID:iJeLzP9T
>>525
イベントハンドラを登録しなおせばいいんだよ。
イベントが発生した時点で、次の状態遷移用のイベントハンドラを新たに作って、それで置き換える。
0527デフォルトの名無しさん2014/11/19(水) 02:38:01.95ID:xfpEOWrn
http://www.dotup.org/uploda/www.dotup.org9292.jpg

60年後のごちうさ
0528デフォルトの名無しさん2014/11/19(水) 06:45:34.30ID:WtffXByM
それがHaskellになんの関係があるんですか
最近日記帳やら原発やら上の画像やらぽよやらスレの私物化が目立ちます
粛清していきましょう
0529デフォルトの名無しさん2014/11/19(水) 13:11:24.21ID:OfAlx19R
Haskell Platformのサイト落ちとるやんけ
0530デフォルトの名無しさん2014/11/19(水) 13:45:28.57ID:nUINe3lu
Mac OS Xでghc, haskell-platformを導入しました。
ghciや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:2Q63zwZ5
Macのことはよく知らないけど、
ld: library not found for -lgmp
なんだからgmpが入ってないのでは?

とりあえずgmpがインストールされてるか確認してみて、なければ入れてみれば
0532デフォルトの名無しさん2014/11/19(水) 14:44:54.00ID:nUINe3lu
はい。そう思ってgmpの存在も確かめてみたのですが, どうやらちゃんとはいってるぽいんですよね...
いま調べていたらmacのgccはllvmのwrapper?らしいので, gccを別で入れなおしてそっちでやってみます
0533デフォルトの名無しさん2014/11/20(木) 00:02:15.34ID:JlnMRpIf
>>532
-v とか -v3 とかつけると、詳細なエラーメッセージがみれるよ。
パスが違ってるか、libgmpがおかしいか、だと思う。
0534デフォルトの名無しさん2014/11/20(木) 00:07:57.61ID:Po2bP3CX
[´・_ 外でおしっこをしている女性は大勢いるぽよ
0535デフォルトの名無しさん2014/11/20(木) 00:50:38.85ID:OJJlSD0q
そうか。
0536デフォルトの名無しさん2014/11/20(木) 17:41:56.95ID:sAQTKHkd
T(n) = 2T(n/2) + O(n)
なら
T(n) = O(n log n)
なの? なんで?

ワカンネ
0537はちみつ餃子 ◆8X2XSCHEME 2014/11/20(木) 17:55:38.37ID:OJJlSD0q
>>536
ヒント: 極限
0538デフォルトの名無しさん2014/11/20(木) 18:07:33.93ID:sAQTKHkd
数学的帰納法で証明できたっぽいけどふにおちん。
極限でとけんの? 教えてクレクレ
0539デフォルトの名無しさん2014/11/20(木) 18:11:13.19ID:SrHOb8b0
T(n) = 2T(n/2) + O(n)

T(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
ほーlog nで置き換えのがコツなんやね

何がワカッテネーのかは判った。TやO同士の四則演算とEqインスタンスだ。
上の証明でいうとO(n)をa*nで置き換えるのがまだ解ってない。
0541デフォルトの名無しさん2014/11/20(木) 19:16:13.26ID:SrHOb8b0
> 上の証明でいうとO(n)をa*nで置き換えるのがまだ解ってない。

見通しが良いからそう変えただけで、別にそこは置き換えなくても無問題だが。
0542デフォルトの名無しさん2014/11/20(木) 22:12:13.76ID:JlnMRpIf
>>541
そお?
オーダ記法のまま
> 両辺を 2^N で割ると
をすると、
O(2^N) / 2^N
になるけど、これって何言ってんだかわかんなくない?
0543デフォルトの名無しさん2014/11/20(木) 22:30:20.76ID:SrHOb8b0
>>542
O(1) 以外の何物でもない
0544デフォルトの名無しさん2014/11/20(木) 22:38:16.17ID:JlnMRpIf
>>543
うーん、やっぱりその辺がわかってないんだよなぁ。O(1)に等しいのはなんとなく解るけど。。
例えば
O(n) + O(n) = O(n)
の左辺は何を意味してるの?
0545デフォルトの名無しさん2014/11/20(木) 22:40:30.46ID:M0tgSF32
O(n)
nが大きいとき、ある定数 c が存在して c・n と表現できる
■ このスレッドは過去ログ倉庫に格納されています