3

我将 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!"
4

2 回答 2

6

在尝试阅读 FRP 论文时,我只玩过 Yampa 一点,但据我了解,这根本不是您IO在 Yampa 中使用的方式。相反,您使用函数“动画” an SF a b,该reactimate函数将类型函数b -> IO ()作为其第二个参数。这个函数是你想要的东西putStrLn,以及程序所做的任何其他类型的渲染。

“Yampa Arcade”论文的“动画信号函数”部分很好地解释了如何reactimate工作。

于 2010-06-01T06:58:50.087 回答
5

这是 Yampa 的完整 Hello World 示例。

{-# 语言箭头 #-}

进口玻璃钢.Yampa

main = 重新初始化输入输出过程
初始化 = 返回“Hello World!”
输入 _ = 返回(0.0,无)
输出 _ x = putStrLn x >> 返回 True
过程=身份
于 2011-07-02T02:36:05.937 回答