トップページ > プログラム > 2015年09月09日 > 15Wbqaqp

書き込み順位&時間帯一覧

2 位/168 ID中時間01234567891011121314151617181920212223Total
書き込み数1033000000010000000010009



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net

書き込みレス一覧

関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
459 :デフォルトの名無しさん[sage]:2015/09/09(水) 00:14:15.49 ID:15Wbqaqp
あなたがそう思うならそれでいいんじゃないの
誰が関数型言語使えと頼むじゃなし使わないと死ぬわけでもなし
関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
462 :デフォルトの名無しさん[sage]:2015/09/09(水) 02:07:49.07 ID:15Wbqaqp
>>461
>データ構築子がreturnとbindしか無くて、一方分解子、runの類いがたくさん提供されてるデータを考えてくれ。

なにが言いたいのか理解できないが、いずれにせよreturn とbind があれば
他のはそれから定義できるんだからなにも問題ない
runXXの類がたくさん提供されてる、というのもよくわからんが、
それで有用性が損なわれるとはちっとも思えない
関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
463 :デフォルトの名無しさん[sage]:2015/09/09(水) 02:09:55.95 ID:15Wbqaqp
あと、データ構築子とreturn/bindは違うものなんでそこのところ宜しく
もし、returnでしか当該データ型の値が作れないならrunXX云々以前にそりゃ役には立たない
m a 型の計算が実質的に a 型の計算そのものに崩壊するからな
関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
465 :デフォルトの名無しさん[sage]:2015/09/09(水) 02:39:48.87 ID:15Wbqaqp
>>464
>だからモナドにするならreturn以外にカスタムコンストラクタをたくさん提供するべき。

いやまったくもって意味不明なんだけど
普通に型定義のデータ構築子がある以上、それを使えばいいんだし、
それらのデータ構築子から構成できないようなものもあり得ない

しかもなんで「べき」なわけ?
Maybe型が役に立たなかったことなんかないだろう
あと、勝手な自分用語振り回されても理解できない(するきになれない)
関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
469 :デフォルトの名無しさん[sage]:2015/09/09(水) 03:13:59.62 ID:15Wbqaqp
データ構築子を公開したくない、というのはわかる
パターンマッチで実体取り出されたくないとき
(実体に依存した利用をされたくないとき)、というのはあるからな

だが、「return に加えて」は意味不明だ

作ろうとするモナドが恒等モナド以上の何かであろうとする限り、
returnでは作れないようなモナド値を構成する方法を提供しなければならない
これは内部表現の隠蔽云々とは何の関係もない
そうしないと使いづらいからではなく、そうしないと恒等モナド以上の
機能を有し得ないから、だ

fromJustを使わない(データ構築子 Just のパターンマッチも使わない)、
というなら、コード全体がモナディックになってしまう
(もちろんnon-monadicなコードは恒等モナドによってまったく等価な
 monadicなコードとして書けるが、普通はそんなことはしない)

はっきりいって、何が言いたいのか本当にわからない……
関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
471 :デフォルトの名無しさん[sage]:2015/09/09(水) 03:20:21.85 ID:15Wbqaqp
>>468
>例えば、doの途中でrunして値を取り出して、その値で分岐して別のモナディックアクションにつなぐのは、計算量が無駄。
>それを避けるためにモナド(手続きの抽象)がある、と俺は理解している。

計算量(?)はほぼ変わらず、コードが見やすくなるだけだ
むしろ、コードの煩雑さを苦にしないならば
最初からモナドの実体を直接操作する方が余計な関数呼び出しと
そこでいう意味の「計算量」は減る

-- オーダー以外の意味で「計算量」を使われるのも違和感があるが
関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
473 :デフォルトの名無しさん[sage]:2015/09/09(水) 03:27:24.33 ID:15Wbqaqp
>>472
Reader モナドで、逐一runReaderを使い r->a 型関数に戻すのが手間だ、
くらいの意味だろう。そりゃモナドの中で計算を合成できる方がいいしが、
指摘の通り、手間や関数適用コストの僅かな定数的増大よりは、文脈を切らずに
連続させることの利益が目的でdo 記法を使うはずだ、と私も思う。
関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
479 :デフォルトの名無しさん[sage]:2015/09/09(水) 11:44:28.09 ID:15Wbqaqp
Monadにはできない(或いは非効率)だけど、Functorよりは強い構造を
持ってる有用なデータ型が多いことがHaskellでのプログラミングの進展に
よって後になってから判明したから

後付で用意されたんで、元からあるMonadの定義には手を付けなかった
関数型プログラミング言語Haskell Part29 [転載禁止]©2ch.net
483 :デフォルトの名無しさん[sage]:2015/09/09(水) 20:48:31.78 ID:15Wbqaqp
FFIのためにCに揃えてメモリ剥き出しでデータ配置してる場合のことでしょ


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。