将变量设置为修改的同一个变量?

时间:2017-04-26 21:11:55

标签: haskell

我有一个程序我正在尝试创建一行文本编辑器 此时我已经到了一点墙。 我有一个名为list的{​​{1}}字母和一个名为left的字母 也许在函数或待办事项列表中如何将左侧设置为right,其中char是用户输入的char。我知道修改列表是不可能的,但我可以重新定义它们吗? 如果这个伪代码有帮助

left ++ char

提前致谢

1 个答案:

答案 0 :(得分:2)

这是State Monad的用途。链接应该有帮助(它指向教程)。那么你的例子将成为:

type Line = State String ()
addInput :: String -> Line
addInput inp = do
   left <- get
   put $ left ++ inp
runState (addInput <user input>) "hello"

然而,这确实需要了解一下monad。请按照链接中的示例进行操作。