Lisp Scheme Part41 (809レス)
Lisp Scheme Part41 http://mevius.5ch.net/test/read.cgi/tech/1531587928/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
193: デフォルトの名無しさん [sage] 2020/04/29(水) 09:21:45.86 ID:sxS/u8Yc >>192 それは承知しているのです。 ここでは Racket のドキュメントをどう解釈すべきかというのが論点です。 >>191 > 最初の要素から最後の要素へと適用すると書いてある 順番に (in order) とは書いていません。 順序が意味を持つ箇所ではおおよそ order という語で強調しているのに それがないここでも順番であることを確信してよいほどに (英語のニュアンスとして) 自明でしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/193
194: デフォルトの名無しさん [sage] 2020/04/29(水) 09:54:06.36 ID:sxS/u8Yc >>191 > 長大なリストに対する並列処理を可能にするためだろう 手続きの引数の評価順序については未規定ではあるものの "some sequential order of evaluation" という制約がついています。 https://docs.racket-lang.org/r5rs/r5rs-std/r5rs-Z-H-7.html#%_sec_4.1.3 ちょっとわかり難いんですが、これは「同時ではない (かのように動作する)」と解されるそうです。 たとえば (list (begin (display 'a) (display 'b) 1) (begin (display 'c) (display 'd) 2)) とあったときに表示は abcd か cdab のどちらかであり acbd だったり cabd だったりはしない ということです。 map についてはこういう制約は書かれてはいないものの、 順序は規定しないという文言は「既定はしないけどなんらかの順序を想定する」 とも読めなくもないので並列化を許しているとは言い切れない気がします。 副作用がないときに限っては並列化しても仕様に反しないのは間違いないですけど、 その場合は順序に関して有るとも無いとも書く必要がないんですよね。 どうせ観測できないので。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/194
196: 187 [sage] 2020/04/29(水) 13:42:08.04 ID:sxS/u8Yc >>195 継続については「call/cc は副作用を生じる」というひとことで説明できます。 副作用とは何かというのは色々なモデル化のやり方があってはっきりしたひとつの定義を 定められないみたいなんですが、この説明が納得感があって参考になると思います。 https://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3Acall%2Fcc%E3%81%A8%E5%89%AF%E4%BD%9C%E7%94%A8 副作用がないなら順序なんか考える必要はないんですよ。 どの順序で実行されようと並列であろうと (観測できる) 結果は同じなので順序を気にする意味がありません。 結果が同じにならない場合 (副作用がある場合) がどうあるべきか考えるから順序が効いてくるんです。 で、副作用がある手続きの中でも特に第一級継続は (観測できるだけでなく) 流れを変えることが出来るから どれが妥当なのか結論が出ないなぁってことです。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/196
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.031s