[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
21: 2011/10/08(土)09:56:34.49 AAS
さて仕切り直すか、雑談は別スレでどうぞ
Haskellを始めたのはいつからですか?
66: 2011/10/10(月)11:32:08.49 AAS
>>64
難しいかどうかって人それぞれなんじゃないの?
俺はCより簡単だと思ってる。
101: 2011/10/12(水)01:35:49.49 AAS
大学に入学してはどうですか?
141: 2011/10/15(土)12:33:57.49 AAS
GUI=WEBページ
234
(1): 2011/10/22(土)22:25:23.49 AAS
>>231
たとえば [1..3] は 1 : (2 : (3 : [])) であり、
「リストを構成するデータ型」の値だ
そして、 : や [] はこのデータ型の「値構築子」だ( : は中置値構築子)

last 関数は、last [] = errorEmptyList "last"; last (x:xs) = ・・・
という形のパターンマッチを行う関数だ

last [1..3] は last (1: (2 : (3 : []) なので、
(x:xs) にパターンマッチし、x=1、xs=(2 : (3 : [])) と束縛する

リストに限らず、データ型の値を作ってる値構築子の引数(この場合は 1 や 2 など)は、
このようにパターンマッチさせて値構築子を剥がす事でしか参照できない

で、リスト 1 : (2 : (3 : [])) がこのようなネスト構造を成している以上、
ネスト構造を「順に剥がしていく」ことでしか中の値は参照できない

ちなみに、f (_:_:x:_) = という関数で f [1..3] などとして一気に x=3 と束縛しようとしても、
内部で順に値構築子を剥がす処理をしてパターンにマッチするかを調べるから同じ事

これを 「Haskellの出来」 というのなら、そうだね、としか言いようがない
240: 2011/10/22(土)23:44:29.49 AAS
>>239
少なくとも GHC 7.0.3 ではされません
307
(1): 2011/10/28(金)12:53:34.49 AAS
>>306
> 例えば存在比を(Int,Double)のリストで表すよりもData.Mapで表す方がベターだと思った場合

そういう場合は、Data.Map 型を使ったコンテナに対するアクセス関数を公開して、
そのコンテナ内部で Data.Map 型を使っていることは隠蔽しておく
>>305 も同じ様なことをアドバイスしている

こうやって、データとそのユーザとの間にインターフェースを設けるのは、
Haskell に限らず、まず間違いなく全ての言語で共通する考え方
CICP 的に言えば「抽象の壁」だ

ちなみに、>>304 の後半で紹介した Expression Problem は、
少なくとも >>301 から読み取れる問題とは別ものと思われる
(応用できるかどうかは分からないけど)
318
(3): 2011/10/29(土)10:48:25.49 AAS
core言語のパーサーを作ろうとしているのですが、
他にこれは読んでおけ、このページは見ておけというものはありますか?
375: 2011/11/05(土)21:24:41.49 AAS
[Word8]
393: 2011/11/07(月)01:24:33.49 AAS
迷ったら付ける
702: 2011/12/13(火)19:25:07.49 AAS
メモリを圧迫してきたら消したいとかいう要求がない限り
純粋なメモ表はトップレベルに置いとけば素直だし簡単
734
(1): 2011/12/18(日)19:34:16.49 AAS
お前はスレ荒らしたりHaskell勉強は先行投資と言ってみたり
本当にいそがしいな
755
(1): 712 2011/12/19(月)18:51:02.49 AAS
>>740
そうですか

私も心が挫けそうで、もう諦め気味です
Windows 標準搭載のコマンドプロンプト以外のコンソールでもダメだったら諦めます
800: 2011/12/23(金)18:24:52.49 AAS
コードが書いてあるあたりだけでもざっと見ればいいよ
826: 2011/12/24(土)05:44:34.49 AAS
>>804 , >>807
ありがとう。
でも、その理屈でIO()をモナドに抽象できるのだとすると、

「IO()で提供されていた種々の関数は全て、
モナドで提供されている演算子に置き換え可能である」

という前提条件が存在すると思うのだけど、どうだろう?

この条件が成立しないと、結局forallはIO()型の値を必要とするよね。
IO()をMonad m=>mで置き換え可能であるためには、forallを使っている
コードも含めて、IO()型に関連する「全ての関数」のモナド版を
用意してあげなくちゃいけないと思うのだけど。
916: 2011/12/30(金)17:30:27.49 AAS
むしろ馬鹿ほどmacだと思う
921: 2011/12/31(土)18:43:32.49 AAS
>>920
あ、なるほど dcSetBackgroundMode か

頭文字 s とか b で探してた
(部分一致とかで検索できないと不便だなぁ)

ありがと
952
(1): 2012/01/02(月)12:26:28.49 AAS
モナドは中身はともかく、どう書けるかって話だと確かに関数型捨ててるでしょ。
特にdoを使って書いてると手続き型とほとんど変わらんし、似たようなスパゲティ化もしやすいし。
957: 2012/01/02(月)13:43:07.49 AAS
クロージャーとかジェネレーターの辺りで完結するべきだった。
最近の関数型はだらだら引き伸ばしているだけ。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.062s