数据结构的名称(如果存在)具有以下操作的名称是什么?
想象一下,有一个2D空间,在这个空间中,有些圆圈以不同的恒定速率生长.什么是用于存储这些圆的有效数据结构,这样我可以查询"哪些圆与p时间点相交t?".
编辑:我确实意识到我可以在空间数据结构中存储圆的初始状态并进行查询,其中我在p半径为的点处与圆相交fastest_growth * t,但是当有少量圆增长时这不是有效的非常快,而大多数生长缓慢.
附加编辑:我可以通过分割圆圈并按增长率对它们进行分组,然后将上述方法应用于每个组来进一步增强上述方法,但这需要有限的时间才能有效.
我正在编写一个dbm样式的数据库管理器,其中包含不可变的B + Trees作为存储介质(请参阅http://sf.net/projects/aodbm/).是否存在用于合并两个B +树的快速算法(树可能共享节点)?
我正在阅读websocket规范,它说:
最后,服务器必须向客户端证明它收到了客户端的WebSocket握手,因此服务器不接受不是WebSocket连接的连接.这可以防止攻击者通过使用| XMLHttpRequest |发送精心设计的数据包来欺骗WebSocket服务器.或者|形式| 提交.
我已多次阅读,但我仍然不清楚为什么这是必要的.
我的理解是GHC为每个线程提供了一个堆栈.为什么这有必要?GHC不编译到CPS吗?是不是一个简洁地表达为封闭的线程?
我理解常规的定点型组合器,我想我理解高阶固定n型组合器,但HFix我不知道.您能举例说明一组数据类型及其可以应用的(手动派生的)固定点HFix.
这应该很简单.我有一个Int,我想将它转换为Word64.它永远不会小于0.我不介意它是否有错误检查.看来我可以使用fromIntegral进行相反的转换,但我找不到反函数.
谢谢.
我试图获得(并证明)我使用HPC在Haskell中编写的一些代码的100%测试覆盖率.但是,如果我写这样的东西:
fac n | n > 0 = n * (fac (n - 1))
| otherwise = 1
Run Code Online (Sandbox Code Playgroud)
然后,guard语句的第二个表达式始终标记为True.在一般情况下,最简单的解决方法是什么?
编辑:只是为了澄清.这段代码:
fac n = if n > 0 then n * (fac (n - 1))
else 1
Run Code Online (Sandbox Code Playgroud)
适用于HPC,(运行它可以提供100%的代码覆盖率).
我基本上遇到了这个问题:http://hackage.haskell.org/trac/ghc/ticket/3175