图形数据库中是否存在模式这样的东西?例如,您是否可以指定哪些类型的节点可以与哪些其他类型的节点建立关系?
这样的架构是什么样的?
不可变数据结构的一个卖点是它们可以自动并行化.如果没有发生突变,则可以在线程之间传递对函数数据结构的引用而不进行任何锁定.
我开始考虑如何在c ++中实现功能数据结构.假设我们在数据结构的每个节点上都有引用计数.(功能数据结构共享数据结构的旧成员和更新成员之间的结构,因此节点不会唯一属于一个特定数据结构.)
问题是如果在不同的线程中更新引用计数,那么我们的数据结构就不再是线程安全的.将互斥锁附加到每个节点都很昂贵,并且无法使用不可变数据结构进行并发.
有没有办法使并发不可变数据结构在c ++(和其他非垃圾收集环境)中工作?
c++ concurrency functional-programming immutability data-structures
对于clojure的排序映射,如何找到具有最接近给定值的键的条目?
例如,假设我有
(def my-map (sorted-map
1 A
2 B
5 C))
Run Code Online (Sandbox Code Playgroud)
我想要一个像这样的功能
(find-closest my-map 4)
Run Code Online (Sandbox Code Playgroud)
这将返回(5,C),因为那是具有最近键的条目.我可以做一个线性搜索,但由于地图已经排序,应该有一种方法可以找到像O(log n)这样的值.
我无法在API中找到使这成为可能的任何内容.例如,如果我可以在地图中询问第i个条目,我可以拼凑一个我想要的功能,但我找不到任何这样的功能.
编辑:
所以sort-map基于在java中实现的PersistentTreeMap类,它是一个红色和黑色的树.所以这看起来应该是可行的,至少在原则上是这样.
我是否应该对创建具有不存在的命名空间的clojure关键字感到谨慎?
一个例子是:foo/bar,其中命名空间foo实际上并不存在.这似乎是可能的,因为这些关键字的行为类似于文字.我在REPL中找不到任何问题,但是我担心AOT编译可能出现的问题.
如何将Javascript资源最好地集成到环形应用程序中?
特别:
是否有环形应用程序的javascript最佳实践?一个可能的答案是完全单独开发客户端和服务器端,基本上将所有内容分成两个独立的项目,但我对这个想法并不完全满意.
(我也知道clojurescript,虽然我主要考虑的是javscript代码,它是用javascript编写的.)
假设我在其上使用用户提供的字符串,用户字符串和调用(关键字用户字符串).
这样做是否有任何安全问题?如果是这样,减轻它们的最佳方法是什么?
假设我有一个键值对向量,我想将它放入一个映射中.
(def v [k1 v1 k2 v2])
Run Code Online (Sandbox Code Playgroud)
我做这件事:
(apply assoc (cons my-map v))
Run Code Online (Sandbox Code Playgroud)
事实上,我发现自己正在做这种模式,
(apply some-function (cons some-value some-seq))
Run Code Online (Sandbox Code Playgroud)
在过去的几天里好几次.这是惯用的,还是有更好的方法将参数形式序列移动到函数中?
Incanter是否支持稀疏矩阵(乘法,分解,求解)?
我希望能够转换incanter数据集中的单个列,并将结果数据集保存到新的(csv)文件中.最简单的方法是什么?
基本上,我希望能够在数据集中的列上映射函数,并用此结果替换原始列.
在clojure中,
(assoc {})
Run Code Online (Sandbox Code Playgroud)
抛出一个arity例外,但是
(dissoc {})
Run Code Online (Sandbox Code Playgroud)
才不是.为什么?我希望他们两个都抛出异常,或者两者都没有提供任何键或值时不做任何更改.
编辑:我看到允许这些形式的理由; 这意味着我们可以将assoc或dissoc应用于可能为空的参数列表.我只是不明白为什么一个人会被允许而另一个不被允许,我很好奇是否有一个很好的理由让我失踪.
clojure ×8
incanter ×2
keyword ×2
c++ ×1
concurrency ×1
database ×1
graph ×1
immutability ×1
javascript ×1
matrix ×1
namespaces ×1
ring ×1
schema ×1
security ×1