[過去ログ] 関数型プログラミング言語Haskell Part22 (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
50(3): 2013/03/23(土)12:35 AAS
Types And Programming Languages って、ついに翻訳されたんだな
外部リンク:www.amazon.co.jp
くっそ高いけど
105(3): 2013/03/23(土)12:36 AAS
Haskellのコードリーディングって難しくない?
たとえばFRPライブラリ reactivce の特徴である
Sink と Event の仕組みや実際の振る舞いについて調べたいとする。
というのも、makeEvent 関数でタプル (sink, event) を作ると、
あたかも、プログラム内のある場所で sink を評価すると、
全く別の場所にある event が反応したかのように表面上は振る舞って、
なかなか興味深い。
だが、とりあえず Sink a の型を見ても a -> Action としか分からない。
makeEvent 関数のソースを見ても、いきなり (fmap.fmap) が出てくるし。
こういう場合は、adaptE 関数から順に自分で簡約しながら見ていく方が良いのかな。
(reactive のチュートリアルでは皆 adaptE 関数から実際の計算が始まる)
C/C++ だと比較的大きな機能がまとまって書かれているけど、
Haskell だと非常に細かい機能が関数呼び出しという数珠繋ぎで表現されていて、
それらがソース中のバラバラの場所に書かれていたりするから、
なかなか C/C++ と同じ要領ではコードリーディングしにくい。
Haskell としてコードが洗練されているほど、振る舞いが追いにくい印象。
もしかしたら、同じようにできるのかも知れんが、何かコツでもあるのかな。
143(3): 2013/03/23(土)12:36 AAS
>>141
あるアルゴリズムがあって
有限個のデータ(具体的には関数記号)に適切な順序構造を与えたときに停止して適切な結果を返してくれるのですが
その順序構造を探すためにプログラム中で順序を動的に変えたいです
外部リンク:ja.wikipedia.org
278(4): 2013/03/23(土)12:38 AAS
>>277
Haskellをメインで使ってるってパフォーマンスは満足いく?
haskellで使ってないはずのメモリ使用量が徐々に増えていかないサーバって書ける?
モナディウスもメモリ使用量の増加が止まらないわけだけど
341(3): 2013/03/23(土)12:40 AAS
The Glorious Glasgow Haskell Compilation System, version 7.4.2を使っています。
uniq :: Eq a => [a] -> [a]
uniq [] = []
uniq [x] = [x]
uniq (x1:xs@(x2:_)) | x1 == x2 = uniq xs
| x1 /= x2 = x1 : uniq xs
というコードを書いてコンパイルすると、
retu.hs:27:1:
Warning: Pattern match(es) are non-exhaustive
In an equation for `uniq': Patterns not matched: _ : (_ : _)
と言われます。
このuniqの定義は自分にはexhaustiveに思えるのですが、
何か見落としているのでしょうか。
531(3): 2013/03/23(土)12:43 AAS
>>527
> Haskellでのゲーム作成方法ないからな〜
それが義務教育時代の勉強みたいと言っているのだが・・・
スペースインベーダーを作ってみたいのなら、それを作るのに必要なものは何か考えようよ。
グラフィックスをスクリーンに描く事、コントローラーからの入力を処理する事、
時間の経過に伴ってキャラクタを生んだり消したりする事、などなど。
で、それをするのに今自分に不足している知識は何か考えてみればいいじゃん。
そして、こういう事をやりたくて、こういう事をする必要があるんだけど、
Haskell ではどうやってやるの? こういう方法を考えてみたけどうまくいかない、
とか質問すればいいんだよ。
最初は個々の事柄に対してそれぞれバラバラに集めた方法やテクニックを継ぎ接ぎするんだから、
きっとHaskell熟練者みたいな綺麗な形にはまとめられないと思う。
でも、そこから少しずつブラッシュアップしたり、時には一から作り直したりするんだよ。
俺はそうやって勉強していくのをお勧めする。
質問時には、俺の持っている知識が役に立ちそうならアドバイスするし。
(他の人もアドバイスしてくれるでしょう)
> 何か皆さんが”初心者はこれが出来たらいいぞ〜”的な問題があったらうれしい。
言っておくけど、君はもうとっくに初心者じゃないんだよ。
いつになったら初心者気分が抜けるのかな。
誰かに、これができたら初心者卒業だと認めてもらわないと不安かな。
(ちなみに、Haskellでインベーダーゲームを作る方法の一つを紹介した
[The Yampa Archade] という論文がフリーで読めるが、いきなりこれはお勧めしない)
557(3): 2013/03/23(土)12:43 ID:lZ0F4JgH!(2/2) AAS
>>556
foldlって無限のリストでも使用できるんですよね。
ま〜take, drop, map, zip, filter位は何とか覚えるようにしてます。
Haskell覚えること多いな。
algbraic type は自分でdata使って独自の型を作れるのは分かったノですが,abstract data typeが理解できない。
既存のIntやBool型などブラックボックス化されてるのがそうなのですか?
609(3): 2013/03/23(土)12:44 AAS
質問です
これがOKで
Prelude> product [x | x <- [1..10000] , mod x 10 /= 0 , mod x 10 /= 2 , mod x 10 /= 5]
これがNGなのは何故ですか?
Prelude> product [x | x <- [1..10000] , not $ (mod x 10) <- [0,2,5] ]
<interactive>:15:36: Parse error in pattern: mod
618(5): 2013/03/23(土)12:44 AAS
AA省
731(3): 2013/03/23(土)12:46 AAS
とりあえず、よくあるもっとも簡単な実装はこれかな。
qs :: (Ord a) => [a] -> [a]
qs [] = []
qs (x:xs) = qs (filter (< x) xs) ++ [x] ++ qs (filter (> x) xs)
空間計算量が最悪O(n^2)になるケースってのは、どういうリストに適用した時?
739(4): 2013/03/23(土)12:46 AAS
*Main> :type (+) (-)
(+) (-)
:: (Num (a -> a -> a), Num a) => (a -> a -> a) -> a -> a -> a
これを解説してください。(+) を数ではない (-) に適用できる?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.049s