我希望在clojure哈希表中存储许多记录.如果我希望使用某个字段或范围查询快速访问某些记录,那么我有什么选项,而不必求助于将数据存储在数据库中(数据首先来自数据库).
我想我也想知道STM是否也是大型索引数据集的正确位置.
我在我的Clojure应用程序中有一个名为"visualize"的方法,它可以呈现我的应用程序的任何部分.我遇到的问题是我的应用程序中的一些东西是Java类,有些是哈希映射,其中字段使用clojure :: idiom在内部标记地图的类型.我知道我可以使用multimaps来调度类型或某些内部类型,但我怎么能这样做才能使同一个多方法同时工作.
在clojure中,转换关键字的惯用方法是什么:
:some-keyword
Run Code Online (Sandbox Code Playgroud)
到一个字符串:
"some-keyword"
Run Code Online (Sandbox Code Playgroud) 我正在开发一个Clojure程序,我正在使用它
(:use modulename :reload)
Run Code Online (Sandbox Code Playgroud)
:无处不在(约100个clj文件).这导致一切都变得越来越慢.有没有其他人经历过这个,如果是这样,你是如何解决它的?
如果我有一组像这样的地图
(def a #{
{:a 1 :b 2}
{:a 3 :b 4}
{:b 1 :c 2}
{:d 1 :e 2}
{:d 1 :y 2}
})
Run Code Online (Sandbox Code Playgroud)
:我怎么能找到所有的钥匙?这样做:
(find-all-keys a)
Run Code Online (Sandbox Code Playgroud)
:回报:
(:a :b :c :d :e :y)
Run Code Online (Sandbox Code Playgroud)
?
我做以下事情:
(defn ss [] "kjhhj")
(doc ss)
Run Code Online (Sandbox Code Playgroud)
但得到"零"返回.为什么是这样?
如果我做 :
(defn tt "kjhhj" [] 1)
(str (doc tt) )
Run Code Online (Sandbox Code Playgroud)
如图所示,我回去一个空字符串...没有了"DOC"输出去了什么?
我在Clojure中有一张这样的地图:
(def stuff #{
{:a "help" :b "goodbye"}
{:c "help2" :b "goodbye"}
{:a "steve" :b "goodbye"}
{:c "hello2" :b "sue"}
})
Run Code Online (Sandbox Code Playgroud)
:我想提供一个搜索,以便:
(search stuff "help")
Run Code Online (Sandbox Code Playgroud)
:会回来:
#{
{:a "help" :b "goodbye"}
{:c "help2" :b "goodbye"}
}
Run Code Online (Sandbox Code Playgroud)
:最简单的方法是什么?
每当我尝试从java调用clojure时,我都会遇到一个未找到类的异常.我可以从另一个Clojure课程中调用Clojure.我究竟做错了什么?
我终于弄明白了.我应该使用正斜杠而不是"." 在RT.load中:
RT.load("namespace/file_name",true);