[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
370: [―{}@{}@{}-] 2011/11/05(土)20:02 AAS
>>368
HaskellのArrayはpersistentじゃない
371: 2011/11/05(土)20:17 AAS
要は素直にmutableなコンテナ使っておけばいいんだろ?
372: 2011/11/05(土)20:57 AAS
画像ファイルを読み込んで、いくつかフィルタを施して、結果を保存する場合、
フィルタリングするイメージデータを格納するコンテナには何が適切なの?
373(1): 2011/11/05(土)21:03 AAS
CArray
374: 2011/11/05(土)21:11 AAS
>>373
ありがと、調べてみる
375: 2011/11/05(土)21:24 AAS
[Word8]
376: 2011/11/06(日)01:25 AAS
外部リンク:repa.ouroborus.net これも使えそうと思ってブックマークしてる。
377(1): 2011/11/06(日)02:49 AAS
Haskellの変数の有効範囲って何か具体的に決まっているのかな?
Haskel Reportを読んでもはっきりと書かれていないような。
以下のように関数(>>?)を定義してvalue1, value2を求めると
value1は普通に求められるが、value2は\s -> s + aのところで
aが未定義ですとか言われる。
括弧があると変数の有効範囲が変わるのかな?
(>>?) :: a -> (a -> b) -> b
v >>? f = f v
value1 = (1, 2) >>? \(a, b) -> b >>? \s -> s + a
value2 = (1, 2) >>? (\(a, b) -> b) >>? \s -> s + a
378(1): 2011/11/06(日)05:53 AAS
>>377
関数の仮引数の有効範囲はその関数本体というのが基本原則。
> value1 = (1, 2) >>? \(a, b) -> b >>? \s -> s + a
は
value1 = (1, 2) >>? (\(a, b) -> b >>? \s -> s + a)
と解釈されるのでs + aは\(a,b) -> ...の関数本体内に含まれるが
> value2 = (1, 2) >>? (\(a, b) -> b) >>? \s -> s + a
はかっこがあるため含まれない。
379: 2011/11/06(日)13:47 AAS
>>378 ありがとう。
メタルールか。なんとなく理解した。
380(1): 2011/11/06(日)16:49 AAS
スコープが見て分かるように()つけまくってるとlisp化してしまうという罠
381: 2011/11/06(日)18:32 AAS
>>380
そのための$です
意外とLisp化食い止められてない気がするけど…
382(1): 2011/11/06(日)18:33 AAS
そう?
少なくとも )))) はだいぶ消えると思うけど。
383: 2011/11/06(日)19:07 AAS
最近は()が多少増えても別にいいかなと思うようになってきた。
384: 2011/11/06(日)20:02 AAS
>>382
逆に言えば、そこにしか効果ないんよ
385(1): 2011/11/06(日)20:50 AAS
いいじゃん
HaskellはLispの飼い猫なんだし
386: 2011/11/06(日)20:56 AAS
昔、BASICしか知らないガキだったころ、Lispのコードを見てびびったのって
)))) って何これ、ってことだったので、それが緩和されるというのは俺にとっては
大きいw
387: 2011/11/06(日)22:02 AAS
>>385
飼い猫ちゃう
Haskellは汎用関数型決戦兵器や
Lispは・・・深海型やな
388: 2011/11/06(日)22:02 AAS
確かにBASICerにとって$は友達だもんな
389(2): 2011/11/07(月)00:04 AAS
っつーかお前らよく結合順序とか読みきれるな
俺どんな言語で書いても表見ないと安心できない
そのうち面倒くさくなってきてlisp化しちゃう
390: 2011/11/07(月)00:16 AAS
>>389
算数・数学の結合順序とほとんど同じだろ?
覚えるって程のことかいな。
微妙に分からんところは()で明示すればいいし。
391(1): 2011/11/07(月)00:29 AAS
>>389
最初はそんなんだったけど慣れた。
でもちょっと不安な所は、()だらけ。
392(1): 2011/11/07(月)00:31 AAS
直感とずれるのは関数合成くらいかな。
あれだけはいつもかっこつけてる。
393: 2011/11/07(月)01:24 AAS
迷ったら付ける
394: 2011/11/07(月)01:35 AAS
>>392
そうか?
$使えるところは関数合成できるから、ghciでlet使って試し書きする時は、$使って、ソースに書いてghciでテストする時にソースに$を関数合成に変えたものを書いてる。
(ghci上で直に定義するときは何故か関数合成できない)
395(1): 2011/11/07(月)06:03 AAS
そんなのカッコ付けたいだけ付けて、
フォーマッタで余計なカッコ外せばいいだろ。
原始時代じゃあるまいし…
396: 2011/11/07(月)07:51 AAS
>>391
hlintしないの?
397: 2011/11/07(月)08:10 AAS
結合順序間違ってるとたいてい型エラーでるし、
そしたら:iで確かめたらいいし。
398: 2011/11/07(月)10:45 AAS
>>395
フオーマッタについてもう少しkwskplz
399: 2011/11/07(月)21:04 AAS
$使うのと括弧で括るのとでは
実効速度違ってくるの?
上下前次1-新書関写板覧索設栞歴
あと 579 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.009s