功能顺序应用

时间:2014-01-22 18:27:09

标签: haskell ghci continuation-passing

我目前正在试图弄清楚Haskell尝试应用某些功能的顺序。如果我有一个函数调用,如:

exec:: Stm -> State -> State
exec (Seq s1 s2) = \s -> exec s2 (exec s1 s) 

这是执行程序的更大程序的一部分,其中每个代码片段可能会改变环境结构,从而跟踪当前变量赋值。在那种情况下,我怎么能确定haskell不会意外地执行错误的部分?我问,因为如果我在延续风格中这样做,它看起来像这样:

type Cont = State -> State
exec:: Stm -> Cont -> Cont
exec (Seq s1 s2) = \c -> exec s1 (exec s2 c) 

如果haskell首先在括号中执行内部部分,它可能会改变程序的含义,因为它会扰乱顺序。我真的很感激一些帮助,因为我似乎无法自己解决这个问题。

0 个答案:

没有答案