[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
231(3): デフォルトの名無しさん [sage] 2011/10/22(土) 21:57:41.34 AAS
>>229229(1): デフォルトの名無しさん [sage] 2011/10/22(土) 21:41:00.81 AAS
>>228
> リストの最後の数値は判ってるんだから
なぜ?
既にソースに書いてある。
先頭から見て行かないと判らない、というならそれはHaskellの出来の問題じゃないの?
306(1): 301 [sage] 2011/10/28(金) 09:25:56.34 AAS
>>302302(2): デフォルトの名無しさん [sage] 2011/10/28(金) 03:18:36.06 AAS
>>301
とりあえず、その個別の問題に対しては、
data T1 = T1 { c :: Char }
data T2 = T2 { d :: Char, s :: String}
f T1{c = 'a' } = "c is 'a'"
f T1{c = c } = "c is not 'a': " ++ show c
g T2{d = 'a' } = "d is 'a'"
g T2{d = d } = "d is not 'a': " ++ show d
以上のパターンを用いることによって対処できる
さらに、
h t2@T2{d = 'b' } = t2{d = 'c', s ="foo" }
のようにasパターンと組み合わせることものできるから、かなりの柔軟性が確保できるはず。
すいません、パターンマッチでの分解に、record syntaxを含めていませんでした。
haskellの入門書などではdata X = MkX Int Double Charなどとしておいて、
f (X i d c) = ...と記述することが「できる」とあったのですが、これって便利なのか?と疑問に思ったのです。
>>304304(2): デフォルトの名無しさん [sage] 2011/10/28(金) 07:47:46.60 AAS
>>301
> Atom型の値の中身をパターンマッチで分解している部分
ここが元凶じゃないかな
Atom型の値の中身をパターンマッチで分解するのなら、
何の為に abbr 関数や abundance 関数を定義したの?
パターンマッチで分解するんじゃなく、
これらの関数を使って中身を取得すべきじゃないの?
パターンマッチだと型の構成を固めちゃうよ
ちなみに、見た目よく似た問題に Expression Problem というのがある
data X = A | B という型をパターンマッチで A B 仕分けしている関数が多くあり、
そこに新たに C という値構築子を追加したいが、修正すべき関数が多くて大変
なんとか楽にしたい、ついでにできれば再コンパイルしたくない
そういう場合なら、たとえばこことか日本語で分かりやすい
外部リンク:d.hatena.ne.jp
確かにアクセッサ関数を定義しているので、型に何かを追加する可能性がある場合は
柔軟性を保てるのですが、例えば存在比を(Int,Double)のリストで表すよりもData.Mapで表す方がベターだと思った場合、
やっぱり変更先が多くなりそうになって嫌だなあと思った次第でして。
>>304のリンク先の方法がスマートに見えるので試してみたいと思います。
最終的には原子に限らず、平均値と分布を出せるようになりたいので、averageやspectrumをAtomだけに制限するのは良い手じゃなさそうです。
509: デフォルトの名無しさん [sage] 2011/11/12(土) 22:23:45.34 AAS
>>508508(2): デフォルトの名無しさん [sage] 2011/11/12(土) 22:08:46.75 AAS
僕ハスケルでOOPしたいです先生
多相レコードを使え…あったっけ?
721: デフォルトの名無しさん [sage] 2011/12/18(日) 17:15:56.34 AAS
やーよ!やーよ!
795(1): デフォルトの名無しさん [sage] 2011/12/23(金) 17:52:14.34 AAS
それで、何をどう抽象できて、何は抽象できないの?
モナドで抽象する前と後とで何が変わるの?
935: デフォルトの名無しさん [] 2012/01/01(日) 23:00:33.34 AAS
年は関係ない。
若い凡百のHaskellプログラマーの見解を聞くより、ずっと傾聴に
値する。
938: デフォルトの名無しさん [sage] 2012/01/02(月) 00:49:38.34 AAS
上の方にpdfのリンクあったろ
発作起こしてないで読め>>925925(2): デフォルトの名無しさん [] 2012/01/01(日) 21:54:51.56 AAS
なんだよ。789、790あたりを見てから、やっぱりモナドは注目すべきなんだろう
と思ってちょっと調べていたんだが、もうとっくの前に情報処理上で和田英一
さんが喝破しているじゃないか。やっぱりモナドなんて騒ぐほどのものじゃねえよ!
「関数プログラミングの泣き所は入出力を含む副作用である。...Haskellは
シリアルに計算を進めるメカニズムのmonadを考案し、これを解決したと言っ
ているが、関数型を一部手放したと言うべきであろう。Lispにも最初からprog
があった。」
941: デフォルトの名無しさん [sage] 2012/01/02(月) 04:47:38.34 AAS
誰か声のでかい人や、口当たりの良い事をいう人に付いていくだけで
本当に良いのかどうか、今から考えた方が将来の為になると思われ。
961: デフォルトの名無しさん [sage] 2012/01/02(月) 14:27:45.34 AAS
好き嫌いだけで一歩も進んでないのな
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.041s