小编Gui*_*nce的帖子

推拉和箭头化玻璃钢的根本区别如何?

我想在Haskell中学习FRP,但要确定要使用的库有点困难.许多似乎是死亡的尝试,有些似乎已经复活(例如最近在Yampa的活动).

根据我的阅读,似乎FRP有两种"种类":一侧是推拉式FRP(如Reactive-banana),另一侧是箭头式FRP(如Yampa).似乎在弗兰和弗里斯时代曾经有过一些"经典的FRP",但我没有发现其中的任何近期活动.

  • 这两个(或三个)FRP真的是根本不同的方法吗?

  • 其中一个是过时的理论而另一个是"未来的东西"?

  • 或者它们是否必须并行发展,以满足不同的目的?

  • 我是否列出了每个类别中最突出的图书馆,还是有其他选择要考虑(Sodium,Netwire等)?


我终于在J. Abrahamson的评论中看到了Evan Czaplicki讲话.这非常有趣,并帮助我澄清了一些事情.我强烈推荐给发现这个问题的人.

haskell frp yampa reactive-banana

264
推荐指数
1
解决办法
1万
查看次数

为什么我的Haskell cmd行程序不能从Vim Bang获得参数?

Vim可以让您使用外部程序的输出替换所选文本.我想利用我在Haskell中编写的程序来利用这一点.但它并没有将所选文本作为args.

- show-input.hs

module Main where

import System.Environment

main = do
    input <- getArgs
    putStr ("Input was: " ++ (show input))
Run Code Online (Sandbox Code Playgroud)

当我从命令行(NixOS GNU/Linux,BASH)运行它时,我得到了预期的行为:

$ ./show-input test
Input was: ["test"]
Run Code Online (Sandbox Code Playgroud)

当我在Vim中选择一些文本并调用时:'<,'>!~/show-input,我得到了这个:

Input was: []
Run Code Online (Sandbox Code Playgroud)

这里有一些奇怪的东西,但我不知道它是来自Vim传递参数的方式还是来自Haskell获取它们的方式.我尝试过使用控制台Vim和图形gVim(8.0.1451),结果相同.


NB:我可以成功使用Vim Bang!与其他外部程序,如grep.它很棒.

---

在chepner的答案之后正确的版本

因此,对于任何感兴趣的人,只需替换getArgsgetContents,您就可以在字符串中输入所有内容(而不是字符串列表).

module Main where

import System.Environment

main = do
    input <- getContents
    putStr ("Input was: " ++ (show input))
Run Code Online (Sandbox Code Playgroud)

vim haskell

1
推荐指数
1
解决办法
53
查看次数

标签 统计

haskell ×2

frp ×1

reactive-banana ×1

vim ×1

yampa ×1