好的,所以我是 Haskell IO 的新手。我已经阅读了很多关于 Haskell 函数中的 IO 和副作用的内容,现在我已经开始在 Haskell 中做一些我自己的副作用,我想知道 - 我该如何编写这些东西?
我有以下功能,因此在运行其中一行代码后,我想做一些打印,前几行的注释对此进行了解释。
我很确定我需要更改函数的类型签名,也许我需要使用 Maybe。也许甚至不可能这样做,我必须完全重写它?我真的不知道 - 但我正在寻找指导。我如何着手包含此功能?
interpret_statement :: Prog -> Vars -> Stmt -> Vars -- one third of the debug -d functionality goes here
-- AFTER every assignment is executed, the interpreter should print a line specifying
-- the variable being assigned to AND its new value
interpret_statement prog vars@(Vars _ b c d) (Assign A expr) = Vars (interpret_expr prog vars expr) b c d
interpret_statement prog vars@(Vars a _ c d) (Assign B expr) = Vars a (interpret_expr prog vars expr) c d
interpret_statement prog vars@(Vars a b _ d) (Assign C expr) = Vars a b (interpret_expr prog vars expr) d
interpret_statement prog vars@(Vars a b c _) (Assign D expr) = Vars a b c (interpret_expr prog vars expr)