小编Has*_*ant的帖子

反应性香蕉可以在网络中处理循环吗?

我们有这样的代码:

 guiState :: Discrete GuiState
 guiState = stepperD (GuiState []) $
   union (mkGuiState <$> changes model) evtAutoLayout

 evtAutoLayout :: Event GuiState
 evtAutoLayout = fmap fromJust . filterE isJust . fmap autoLayout $ changes guiState
Run Code Online (Sandbox Code Playgroud)

你可以看到evtAutoLayout提供给guiState,它被输入到evtAutoLayout中 - 所以那里有一个循环.这是故意的.自动布局调整gui状态直到达到平衡,然后它返回Nothing,因此它应该停止循环.当然,新的模型改变可以再次启动它.

但是,当我们将它们组合在一起时,我们会在编译函数调用中遇到无限循环.即使autoLayout = Nothing,它仍会在编译期间导致堆栈溢出.

如果我删除了guiState中的union调用并删除了图片中的evtAutoLayout ...

 guiState :: Discrete GuiState
 guiState = stepperD (GuiState []) $ mkGuiState <$> changes model
Run Code Online (Sandbox Code Playgroud)

它工作正常.

有什么建议?

haskell reactive-programming reactive-banana

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

盒装载体为什么这么慢?

我试图分摊O(n)时间连接的向量.它似乎工作但如果我需要存储盒装值(如矢量),结果仍然很慢.

import qualified Data.Vector as V
import qualified Data.Vector.Generic.Mutable as GM
import Data.Vector(Vector)
import Control.Monad.State.Strict
import Control.Monad.ST

data App = S !(Vector Int) !Int deriving (Show)

main = do
  x <- liftM (map read . words) getContents
  print $ execState (mapM_ (add . V.singleton) x) (S V.empty 0)

add :: Vector Int -> State App ()
add v1 = do
    S v2 n <- get
    let v3 = vectorGrowAdd v1 v2 n
    put (S v3 (n + V.length …
Run Code Online (Sandbox Code Playgroud)

haskell vector

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

reactive-banana:如何创建AddHandler?

我正在尝试通过Heinrich Apfelmus的反应性香蕉来了解FRP ,与我所看到的其他相比,它似乎是一个文档齐全且简单的库.

但是,我无法绕过AddHandler类型.假设我想使用GLFW来获取鼠标按钮,以便我有类似的东西eMouseButton :: Event ().看看这些例子,似乎我不得不使用fromAddHandler,但我不知道如何组装该AddHandler参数.我想我不得不以newAddHandler某种方式使用,但是怎么样?

我想一个如何连接reactive-banana到其他东西的例子wx会有很大帮助.

haskell reactive-programming reactive-banana

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

Emacs持久折叠模式

有很多方法可以在Emacs中折叠代码,我已经决定使用轮廓次要模式...它很有用!

但是,当我关闭并重新打开文件时,我真的希望我的折叠能够持久化.以我喜欢的方式在文件中设置折叠是非常令人沮丧的,只是在重新启动Emacs时丢失了.

有没有人找到一种方法来保持文件的折叠状态持久?

emacs folding

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

当给出无与伦比的开括号/括号时,vim折叠打开

我经常遇到这样的情况:我有很多折叠的线条,我正在写这些代码,在这些折叠之上.一旦我输入'{',下面的所有折叠打开.即使vim这样做是合法的,但再次关闭所有折叠也是令人恼火的.这种情况有办法解决吗?

vim folding

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

虚拟内存是无限的?

我在接受采访时被问到虚拟内存是无限的吗?我回答说这不是无限的.然后面试官问了解释,我建议的是,在Windows中,我们确实有一种手动方式将虚拟内存配置到一定限度.

我想知道虚拟内存是否真的无限?

memory

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

如何在PhoneGap应用程序内的页面之间导航?

我是PhoneGap的新手,我有点迷茫.我已经安装并运行了示例应用程序,它运行正常.现在我想改变一下默认应用程序.我想要一个按钮或链接从当前页面/视图更改为我在"www"文件夹中的另一个.如果我使用"..."它会打开Safari.

如何在PhoneGap应用程序内的视图/页面之间导航?

iphone android cordova

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

反应性香蕉中的行为

对不起,我刚刚开始研究反应性香蕉和玻璃钢.

反应香蕉的作者根据我的建议制作了这个例子,他创造了一个可以增加和减少的计数器.他使用累积函数来累积事件.我想我能够在某种程度上了解事件类型,并能够用它测试很多东西,但后来我记得还有行为.我调查了一下,但似乎这种行为意味着在类似的情况下使用; 修改现有变量,就像accumE对事件一样.

行为意味着什么,它的用例是什么?

haskell reactive-programming reactive-banana

12
推荐指数
4
解决办法
1176
查看次数

NetBeans:代码折叠不会出现在我的某个PHP文件中

我正在使用NetBeans IDE.通常,我项目中的每个PHP文件都有代码折叠:

代码折叠出现

但是,我的项目中的一个PHP文件没有代码折叠:

代码折叠不会出现

该文件没有语法错误.我尝试重新启动NetBeans并重新打开项目,折叠仍然没有出现.会是什么呢?

更多信息:

  • 我正在使用NetBeans IDE 7.0.1.
  • 文件的扩展名.php与我项目中的所有PHP文件类似.
  • 在另一个具有完全相同内容的文件上,会出现代码折叠.

php netbeans folding

12
推荐指数
2
解决办法
3403
查看次数

更新基地有多安全?

在ubuntu上,我目前安装了haskell-platform 2011.2.0.1.2,我目前正在编写一些代码,在这里可以 Control.Concurrent.Chan成为一个实例Eq.不幸的是,在 base-4.3.1.0我安装的那个中,它不是,但是在 base-4.4.0.0 Chan它的实例中Eq.

是否有可能更新基础,可能通过沙箱cabal-dev或任何其他方法,以一种不会破坏太多包的方式?

haskell cabal

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