関数型言語Part3

このエントリーをはてなブックマークに追加
317新しい文法スレの753
>>785
>一番新しいものでも 3月21日だったので

それは残念だね。更新されるのを待つのがいいかもしれないね。
>>792
>でも、最左戦略で non-strict とすると、だいたい外側から試していくわけで、
>継続という処理が終わっていない部分は内側のように思えますが、
>そうなんでしょうか?

内側だろうが外側だろうが、まだ計算が終わっていない部分全て。

>また、Scheme で継続を呼び出すときは値をひとつ渡すわけですが、
>上記のように内側の部分を継続とすると、
>継続を呼び出したときに与える値はどこにはまるんでしょうか?

そりゃ、「継続で指定された場所」でしょう。

>Clean の簡約戦略は関数型簡約戦略だそうですが、これだとどうなんでしょう?

Cleanは知らないので答えられない。俺が教えて欲しいぐらい。

>また、仮にランダムに redex を選ぶような戦略を想定するとどうなるんでしょう?

それでも、計算されていない部分が継続で問題無いと思うが。
318新しい文法スレの753:03/06/05 06:39
>でも、こんな操作は書き換え規則では単純にはかけませんし、

俺もよくわからない。

>上の例に delay と force を入れると、
>Haskell や Clean のように、
>合流性や参照透明性が保たれるようになるんでしょうか?

おそらく、delayとforceを使うと、評価順が一定に定まってしまって、
戦略を選ぶ余地がなくなると思うが。
だから、確かに合流性は保たれるんだけど、これは、レデックスが
同時に複数でてくる言語とは違うような気がする。

たしかに、Haskellのような言語に参照透明性が保たれる
ように継続を導入するのは一筋縄ではいかなそうだな。

俺が単純に考えて思いつくのは、例えば「この場所では同じ
継続呼び出ししかできない」のような制約を課せば
合流性が保たれるように実現できるかもね。

つうか、俺は関数型の専門家でもなんでもないし、
ラムダ計算とかも昔少し独学した程度なので、
つっこんだこと聞かれても困るが。

第一、あなたの方が詳しいような気がするんだけど。(w
間違ったこと言っていたらスマソ。