トップページ > プログラム > 2015年02月21日 > 43YG5tRb

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

13 位/263 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000101001003017



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

書き込みレス一覧

関数型プログラミング言語Haskell Part27_©2ch.net
622 :デフォルトの名無しさん[sage]:2015/02/21(土) 13:01:14.43 ID:43YG5tRb
>>613

> だから遅延評価な関数型言語で(命令型言語の)制御構造を表現するには、
> 何らかの工夫(=小細工)が必要になる
> >>539 で書いたように、(継続を含む)制御構造は純粋だよ

これは、継続(あるいは逐次)が評価順序にセンシティブということであり、
つまりは、継続は純粋ではないということではないの?
それとも、「継続は、>>=によって純粋でないことを明示しているので純粋である」
という変な論法?

> 純粋でないのは制御構造の対象要素であるI/Oや破壊的代入のような命令の部分

命令の部分が純粋でないのはそのとおりだが

> 命令型言語の制御構造は、フローチャートを思い浮かべれば分かるように
> ステートマシン(有限状態機械)としてモデル化できる
> そして良く知られているようにステートマシンは純粋な関数として表現できる
> (純粋な)制御構造と(純粋ではない)命令とをごっちゃにしてはいけない

よくわからん説明だな。
命令型言語の制御構造はステートマシンとしてモデル化できるが、
そのステートマシンは純粋でないものの代表だろ? Stateモナドだってあるくらい。

> 良く知られているようにステートマシンは純粋な関数として表現できる

これ何のこと言ってる?ホントか?
関数型プログラミング言語Haskell Part27_©2ch.net
627 :デフォルトの名無しさん[sage]:2015/02/21(土) 15:00:28.18 ID:43YG5tRb
?純粋でないところがモナドの出番だろ
関数型プログラミング言語Haskell Part27_©2ch.net
631 :デフォルトの名無しさん[sage]:2015/02/21(土) 18:10:17.50 ID:43YG5tRb
>>628
純粋な関数には、そもそも、評価順序という概念すらないだろ
関数型プログラミング言語Haskell Part27_©2ch.net
638 :デフォルトの名無しさん[sage]:2015/02/21(土) 21:21:50.24 ID:43YG5tRb
>>630
>仕様を一切変更することなく実装を変更するのは不可能
嘘だろ
>>633
いつ評価されるべきかはその関数の仕様に依存する
>>634
言語の実装の性質
関数型プログラミング言語Haskell Part27_©2ch.net
640 :デフォルトの名無しさん[sage]:2015/02/21(土) 21:48:26.24 ID:43YG5tRb
>>637
あなたの副作用の定義を示してくれんか?
もしかしてリアルワールドとのインタラクションだけを意味してる?
関数型プログラミング言語Haskell Part27_©2ch.net
641 :デフォルトの名無しさん[sage]:2015/02/21(土) 21:50:05.66 ID:43YG5tRb
>>639
いま言ってる仕様って書かれてるものだよん
関数型プログラミング言語Haskell Part27_©2ch.net
643 :デフォルトの名無しさん[sage]:2015/02/21(土) 23:28:29.54 ID:43YG5tRb
>>642
サンクス。それなら俺の理解とあまり違わないとまずは思うね。
俺の場合は、純粋な関数とそれ以外という区別だが。
同じことをあなたは、主作用とそれ以外と言っていると理解した。
ただ、純粋な関数にはもちろん作用なんてないから、根本的に違うのかもしれん


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