我有一个程序我正在尝试创建一行文本编辑器
此时我已经到了一点墙。
我有一个名为list
的{{1}}字母和一个名为left
的字母
也许在函数或待办事项列表中如何将左侧设置为right
,其中char是用户输入的char。我知道修改列表是不可能的,但我可以重新定义它们吗?
如果这个伪代码有帮助
left ++ char
提前致谢
答案 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。请按照链接中的示例进行操作。