我正试图把头绕在 FRP 上,但我不确定我做对了。我想从按键事件建立一个字符串,直到按下输入。一旦按下回车,字符串就会被写出并且累加器被重置为空字符串。
Char
我有一个事件源,每次按下键盘上的键时都会发出ePressed
. 首先,我将我关心的两种按键分开:
eWritable = filterE (`elem` ['A'..'z']) ePressed
eEnter = filterE (== '\n') ePressed
现在我知道如何将它们收集到我想要发送的内容中:
eToPrint = accumE "" (fmap (:) eWritable)
但是我不确定如何“坚持”直到按下输入,或者之后如何重置它。什么是正确的,惯用的方式来解决这个问题?