我将 Haskell 与使用箭头语言扩展的 Yampa FRP 库一起使用。
我怎样才能在 SF 中做一个简单的 putStrLn?
mySF = proc x -> do
y <- identity -< x*x
putStrLn "Hello World!" ++ show y
returnA -< y
箭头语法抱怨表达式不在箭头中(当然),但即使有箭头我也没有输出
output <- identity -< putStrLn "Hello World!"
在尝试阅读 FRP 论文时,我只玩过 Yampa 一点,但据我了解,这根本不是您IO在 Yampa 中使用的方式。相反,您使用函数“动画” an SF a b,该reactimate函数将类型函数b -> IO ()作为其第二个参数。这个函数是你想要的东西putStrLn,以及程序所做的任何其他类型的渲染。
“Yampa Arcade”论文的“动画信号函数”部分很好地解释了如何reactimate工作。
这是 Yampa 的完整 Hello World 示例。
{-# 语言箭头 #-}
进口玻璃钢.Yampa
main = 重新初始化输入输出过程
初始化 = 返回“Hello World!”
输入 _ = 返回(0.0,无)
输出 _ x = putStrLn x >> 返回 True
过程=身份