関数型プログラミング言語Haskell Part22
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/03/23(土) 12:34:19.09ttp://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/
Part18 ttp://toro.2ch.net/test/read.cgi/tech/1331902463/
Part19 ttp://toro.2ch.net/test/read.cgi/tech/1340760070/
Part20 ttp://toro.2ch.net/test/read.cgi/tech/1350428908/
Part21 ttp://toro.2ch.net/test/read.cgi/tech/1358702176/
0153デフォルトの名無しさん
2013/04/06(土) 23:53:23.110154デフォルトの名無しさん
2013/04/07(日) 00:11:38.23ちゃんと、思った通りに動いているか、確認した?
特にvalueの方
0155デフォルトの名無しさん
2013/04/07(日) 01:03:08.630156デフォルトの名無しさん
2013/04/07(日) 06:40:05.31なんとか動いてます。
value :: [Float] -> [Float]
value [] = []
value (x:xs) = case (ave (x:xs) /= 0) of
True -> (x/ave (x:xs)) : value xs
False -> []
ave :: [Float] -> Float
ave (x:xs) = (sum (x:xs)) / (fromIntegral (length (x:xs)))
ave [] = 0
0157デフォルトの名無しさん
2013/04/07(日) 07:49:49.17いつの間にか全然違うではないかw
0158デフォルトの名無しさん
2013/04/07(日) 09:11:21.820159デフォルトの名無しさん
2013/04/07(日) 10:55:35.290160デフォルトの名無しさん
2013/04/07(日) 11:07:50.45初心者ほど最強言語とか訳分からん理由で選ぶからな
挫折する姿が目に浮かぶようだ
0161デフォルトの名無しさん
2013/04/07(日) 11:10:10.27ありがとうございます。
0162デフォルトの名無しさん
2013/04/07(日) 11:24:27.03はい。それが王道となりつつあります。
0163デフォルトの名無しさん
2013/04/07(日) 11:33:13.630164デフォルトの名無しさん
2013/04/07(日) 11:33:36.63正直、あんなもの勉強するくらいなら最初からHaskellでリスト処理を学ぶ方が良い。
0165デフォルトの名無しさん
2013/04/07(日) 11:42:44.91そこは勘弁。
>>158
華麗なコード書きたいけど、どうしても無理。
ラムダに行く前にまだまだ練習が必要だと思う。
0166デフォルトの名無しさん
2013/04/07(日) 11:55:33.26まあ、C の言語仕様はシンプルだからな
はっきり言って、知的好奇心をそそるものではないよね
C++ の template は、そこそこ面白いんだけど、実践言語であれは無いだろとも思う
0167デフォルトの名無しさん
2013/04/07(日) 11:59:35.78Cでメモリリークを潰して廻るより苦痛だけどな
まあトイプログラムで遊んでるレベルじゃ関係ないけど
0168デフォルトの名無しさん
2013/04/07(日) 12:01:03.15ave xs = sum xs / fromIntegral (length xs)
0169デフォルトの名無しさん
2013/04/07(日) 12:08:22.390170デフォルトの名無しさん
2013/04/07(日) 12:11:14.14残りリスト要素の平均じゃなかったの。
0171168だけど日本人じゃないから変な日本語は許してな
2013/04/07(日) 12:19:59.77そうだったな、すまん
value xs = zipWith (/) xs (map ave (tails xs))
0172デフォルトの名無しさん
2013/04/07(日) 14:01:10.42>C言語の某定番教科書はポインタと構造体の解説が延々と続く。
どれ?
0173デフォルトの名無しさん
2013/04/07(日) 14:10:23.37俺はよりコンピュータの本質に近い方を選ぶ
0174デフォルトの名無しさん
2013/04/07(日) 14:14:32.28コンピュータの本質に近く無いと申すか
確かにそうですね
0175デフォルトの名無しさん
2013/04/07(日) 15:17:04.03そのコンピュータというのがハードの事なら、より近いのはC言語だな
もし計算を意味するのならHaskellの方が近いな
0176デフォルトの名無しさん
2013/04/07(日) 15:42:26.12たんなる理論的なからくりだろう>再帰
0177デフォルトの名無しさん
2013/04/07(日) 17:56:41.74チューリングマシンとラムダ計算のどちらが本質か、だなんて誰にも決められない。
0178デフォルトの名無しさん
2013/04/07(日) 18:15:01.360179デフォルトの名無しさん
2013/04/07(日) 18:44:06.430180デフォルトの名無しさん
2013/04/07(日) 18:51:44.96そもそも自然数が再帰の構造なんだから
0181デフォルトの名無しさん
2013/04/07(日) 19:11:30.890182デフォルトの名無しさん
2013/04/07(日) 19:32:57.56自動定理証明に応用できる
0183デフォルトの名無しさん
2013/04/07(日) 19:46:45.410184デフォルトの名無しさん
2013/04/07(日) 20:01:24.84最近流行ってるのは抽象による形式手法だけど、C言語ベースでの形式手法も研究されてるし。
0185デフォルトの名無しさん
2013/04/07(日) 20:27:08.19実践では抽象しないと開発が間に合わないんだよね。
0186デフォルトの名無しさん
2013/04/07(日) 20:52:52.110187デフォルトの名無しさん
2013/04/07(日) 20:55:39.32マジで?!
0188デフォルトの名無しさん
2013/04/07(日) 21:39:37.770189デフォルトの名無しさん
2013/04/08(月) 02:21:59.090190デフォルトの名無しさん
2013/04/08(月) 04:39:05.59本物の形式手法は抽象度の高い仕様から
Adaサブセットやアセンブリまでをカバーして
それぞれのレベルでテストや証明をした上で
相互にトレーサブルにする。
つまり、どっちも本質。
0191デフォルトの名無しさん
2013/04/08(月) 06:43:16.27C/C++等の抽象度が低い、というのが今ひとつ理解できないのだが、この場合の抽象度とは何を意味するのだろうか?
言い換えるとC/C++でも抽象度が高い記述があるのだろうか?
抽象度が高い=ての込んだ複雑な「からくり」がついただけ、という史観はそろそろカビが生えてきたようだ‥‥
0192デフォルトの名無しさん
2013/04/08(月) 11:15:43.10副作用のない関数と式の組み合わせで書けるものはそう書いたほうが良いね。
0193デフォルトの名無しさん
2013/04/08(月) 19:47:50.78fortranの設計者(バッカス先生)はチューリング賞講演で、
fortranの中で意味があるのは代入文の右辺だけだと言ってた。
0194デフォルトの名無しさん
2013/04/08(月) 22:31:21.020195デフォルトの名無しさん
2013/04/08(月) 22:34:50.48計算モデルにはレイヤなんて概念は存在しないw
0196デフォルトの名無しさん
2013/04/08(月) 22:59:54.66実装に実装を重ねてハード寄りの泥臭さから遠ざかったところに高級言語があるんだから
ハードウェアの本質がそこにあるはずがないって話
0197デフォルトの名無しさん
2013/04/08(月) 23:06:44.08ゲーデル数が数学の定理に比べて泥臭くないのと同じ
むしろ洗練されている
0198デフォルトの名無しさん
2013/04/08(月) 23:17:35.81そういうのが洗練されてるって言うつもりでいる?
0199デフォルトの名無しさん
2013/04/08(月) 23:21:24.73高水準言語で見ればnop並んでる
最も低水準の機械語で見ればコードの端から端まで2進数というたった一種類に抽象化された数が並んでるだけ
0200デフォルトの名無しさん
2013/04/08(月) 23:25:00.570201デフォルトの名無しさん
2013/04/08(月) 23:47:58.930202デフォルトの名無しさん
2013/04/09(火) 01:01:33.080203デフォルトの名無しさん
2013/04/09(火) 01:17:36.250204デフォルトの名無しさん
2013/04/09(火) 01:25:49.730205デフォルトの名無しさん
2013/04/09(火) 01:37:28.97最強の俺言語として生まれたハングルを指して言ってるならあれだけど
0206デフォルトの名無しさん
2013/04/09(火) 02:12:20.33語の列を元と同じ動作をする範囲で抽象化して再び提示しても元の語の列になるという意味で
語の列が抽象化という作用により不動になるプログラミング言語を完成させたとき、その言語は機械語と同型である
0207デフォルトの名無しさん
2013/04/09(火) 02:20:52.25日本語で書いてあるはずなのに、意味が分からないんだ
0208デフォルトの名無しさん
2013/04/09(火) 02:28:04.88そのプログラミング言語は機械語である
ゆえに機械語こそが最高に抽象化された言語である
0209デフォルトの名無しさん
2013/04/09(火) 02:40:44.15実際、機械語の操作的意味論の美しさといったら…
0210デフォルトの名無しさん
2013/04/09(火) 06:00:31.600211デフォルトの名無しさん
2013/04/09(火) 07:09:20.20はっきり言って、なにを言っているのかわからない。
0212デフォルトの名無しさん
2013/04/09(火) 22:33:26.370213デフォルトの名無しさん
2013/04/09(火) 22:59:28.840214デフォルトの名無しさん
2013/04/10(水) 00:12:02.180215デフォルトの名無しさん
2013/04/10(水) 00:15:45.44匿名とはいえ、失礼いたしました。(_O_)
0216デフォルトの名無しさん
2013/04/10(水) 00:29:33.56何とかしてくれよ
0217デフォルトの名無しさん
2013/04/10(水) 01:21:41.46言葉遊び=プログラミング
0218デフォルトの名無しさん
2013/04/12(金) 00:00:06.730219デフォルトの名無しさん
2013/04/12(金) 00:19:25.55無いよね?
0220デフォルトの名無しさん
2013/04/12(金) 05:05:31.67Monad ⊂ Functor みたいにサブクラス宣言があればいいのに
0221デフォルトの名無しさん
2013/04/12(金) 07:01:04.050222デフォルトの名無しさん
2013/04/12(金) 10:08:01.28なんだそれふざけてるの
0223デフォルトの名無しさん
2013/04/12(金) 22:34:40.22むしろ有害
0224デフォルトの名無しさん
2013/04/12(金) 23:37:48.820225デフォルトの名無しさん
2013/04/13(土) 01:12:51.31$ \g -> g . g $ "b"; return $ x++y; }
"aabzzaabzzbzz"
色々実験してるけどContモナドが継続の意味も含めさっぱり分からない…
0226デフォルトの名無しさん
2013/04/13(土) 10:13:06.61これのHaskellの部分は見た?
0227デフォルトの名無しさん
2013/04/13(土) 12:11:28.44良さそうなpdfをリンクから見つけたので読んできます
http://pllab.is.ocha.ac.jp/~asai/cw2011tutorial/main-j.pdf
0228デフォルトの名無しさん
2013/04/13(土) 18:46:31.540229デフォルトの名無しさん
2013/04/13(土) 18:50:38.000230デフォルトの名無しさん
2013/04/13(土) 20:26:57.25リワハのライブラリって何?
0231デフォルトの名無しさん
2013/04/13(土) 20:44:44.280232デフォルトの名無しさん
2013/04/13(土) 22:20:41.840233デフォルトの名無しさん
2013/04/13(土) 22:23:49.48まあ接続詞が1つしかない文章にこれ以上突っ込んでも仕方ない気がするけど
0234デフォルトの名無しさん
2013/04/14(日) 15:38:54.380235デフォルトの名無しさん
2013/04/14(日) 17:49:32.350236デフォルトの名無しさん
2013/04/14(日) 18:38:09.36く/・ ⌒ヽ
| 3 (∪ ̄]
く、・ (∩ ̄]
0237デフォルトの名無しさん
2013/04/14(日) 22:23:52.552ちんこ1金玉だな
0238デフォルトの名無しさん
2013/04/15(月) 15:04:25.83く/・ ⌒ヽ
| 3 (∪ ̄]
く、・ (∩ ̄]
0239デフォルトの名無しさん
2013/04/17(水) 02:08:13.62Prelude> f 1 2 3
(1,2,3)
Prelude> (1 `f`) 2 3
(1,2,3)
Prelude> (`f` 2) 1 3
(1,2,3)
Prelude> let g = (`f` 2)
Prelude> 1 `g` 3
(1,2,3)
Prelude> let h = (`g` 3)
Prelude> h 1
(1,2,3)
0240デフォルトの名無しさん
2013/04/17(水) 13:01:01.94ったりめえだとしか言い様がないんですが
あと、
f = (,,)
0241デフォルトの名無しさん
2013/04/17(水) 23:21:25.370242デフォルトの名無しさん
2013/04/17(水) 23:26:23.890243デフォルトの名無しさん
2013/04/17(水) 23:30:06.01rev :: [a] -> [a]
rev (x:xs) = rev xs ++ [x]
rev [] = []
-- n steps
reverse' :: [a] -> [a]
reverse' = foldl prefix []
where prefix xs x = x : xs
foldr, flodlの働きがいまいちわからない。
0244デフォルトの名無しさん
2013/04/17(水) 23:40:33.410245デフォルトの名無しさん
2013/04/17(水) 23:58:13.130246デフォルトの名無しさん
2013/04/18(木) 22:10:36.220247デフォルトの名無しさん
2013/04/18(木) 22:20:10.590248デフォルトの名無しさん
2013/04/19(金) 04:47:17.130249デフォルトの名無しさん
2013/04/19(金) 05:17:43.69haskellの人は賢くてポイントフリーや既存の関数を使いまわすのが得意な人が多いせいか、
他人のコードはperlのワンライナーに似た難読性がある。
0250デフォルトの名無しさん
2013/04/19(金) 20:24:23.77残りは自分自身に再帰、みたいな構造にしたほうがいいよ、という仕掛け。
でも慣れるまでは気にせずLispやMLでやるみたいに補助変数に溜め込むコードを
書いてればいいんじゃないかと思うけど。
0251デフォルトの名無しさん
2013/04/19(金) 20:38:58.170252デフォルトの名無しさん
2013/04/19(金) 21:12:55.90■ このスレッドは過去ログ倉庫に格納されています