- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 Haskell 中学习 FRP,但是决定使用哪个库有点困难。许多尝试似乎已经失败,有些似乎又复活了(例如最近在 Yampa 上的事件)。
从我读到的内容来看,FRP 似乎有两种“类型”:一侧是推拉式 FRP(如 Reactive-banana 和 Reflex),另一侧是箭头 FRP(如 Yampa)。好像 Fran 和 FrTime 时期也曾经有一些“经典的 FRP”,但我没有发现其中有任何最近的事件。
这两种(或三种)FRP 方法真的是根本不同的吗?
其中一个理论是否已经过时,而另一个理论将是“ future 的东西”?
或者它们是否必须并行发展,以满足不同的目的?
我是否列出了每个类别中最著名的库,或者是否还有其他可供考虑的选项(Sodium、Netwire 等)?
最佳答案
我访问 Haskell.org 来调查您的问题,我发现您应该阅读两篇重要论文以进一步研究,并且我正在根据这些学术论文构建对您问题的答案。
Push-Pull FRP by Conal Elliott
Generalising Monads to Arrows by John Hughes
<小时/>是的,但也不是。根据 Elliot 的说法,推是数据驱动的 FRP 评估,拉涉及所谓的“需求”驱动的评估。作者建议使用拉取,因为推送往往会在数据输入之间闲置。关键在于:推拉结合并平衡这些行为,其主要目的是最大限度地减少重新计算值的需要。很简单;通过推拉操作 FRP 可以加快 react 能力。 箭头是一种使用抽象类型链接值并同时评估它们的不同技术。所有这些概念都是根本不同的。但不要相信我的话:
The nature of the Arrow interface is problematic for the goal of minimal re-evaluation. Input events and behaviors get combined into a single input, which then changes whenever any component changes, (Elliott).
因此,Arrow 与推拉的目标相矛盾。这并不意味着您不能同时使用所有这些,只是它会很复杂,并且如果没有抽象的 Arrow 类型,您将无法计算某些内容。
我还没有找到关于哪些方法是“ future 之路”的学术观点。请注意,箭头可以很好地处理同时性。如果你可以实现箭头并使用推拉来最小化计算,那将是 future 的方向。
是的,它们有不同的目的。正如我所说,它们可以一起制定,但很难实现,即使它确实有效,也可能会抵消推拉的 react 速度优势。
这是主观的,但 Reactive 和 Yampa 似乎是 FRP 最常被引用的语言库。我想说 Conal Elliott 的 Reactive 有着很深的根基,Yampa 也很成熟。 Netwire 等其他项目作为替代品出现,但它们取代巨头可能还需要一段时间。
希望这有帮助!就像我说的,阅读我指出的文章将使您更好地了解箭头、推和拉之间的语义距离。
关于haskell - 推拉式和箭头式 FRP 有什么根本区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26164135/
我想了解 Ajax 推拉概念。如果有任何教程或书籍,我将不胜感激任何建议。 最佳答案 这是一个不错的 A Comparison of Push and PullTechniques for AJAX为
是否可以从一个远程存储库推送到另一个远程存储库? 我有一个案例,我将本地更改推送到远程集成存储库。一旦获得批准,我希望将集成存储库推送到发布存储库(我将从中构建我的发布)。 这在技术上可行吗? 编辑:
所需的网格 xs 屏幕到 sm 我正在尝试对其他网格重新排序,以便在蓝色部分旁边放置一个嵌套网格。这是我现在的代码,但是推拉会导致橙色方 block 消失。 Slider QuickHelp
我刚刚将 Bootstrap 放到我的网站上,并且一直在测试它。我一直在尝试使用那里的网格系统,但遇到了一个小问题。所以在我的网站上我有一个标题,它看起来像这样“按钮 1-6 | Logo | 登录”
所以我已经阅读了这个主题:Column order manipulation using col-lg-push and col-lg-pull in Twitter Bootstrap 3 但是我还
我必须重新排列小屏幕中按以下顺序排列的列 1,2,3 在小屏幕中应显示为 3,1,2。 它适用于两个,但我不确定如何使其适用于具有以下结构的三列 Push and Pull Resize t
我正在尝试创建一个 docker 注册表并且发生了一些问题,我无法执行推和拉等操作,它遵循我的环境设置: # docker container run -d -p 5000:5000 --name r
对于 col-md 和更高级别,我希望有 2 个 div besides,同时对于 ,它们above col-sm 及更低。所以我尝试使用文档中提到的推拉功能,但不知何故它不起作用。我想要做的是让 R
我是一名优秀的程序员,十分优秀!