我想开发一个在线应用程序,我正在考虑建立一个内置社区功能或仅建立一个Facebook应用程序的网站.我想知道其他人是否必须做出同样的决定以及我需要考虑哪些事情.
我想建立的网站将是一个教育门户网站,人们可以在线制作和参加测试
我正在考虑从Clojure 1.2切换到Clojure 1.3 alpha/beta,我想知道其他人在切换之前对Clojure 1.3的稳定性有何看法.
在1.2我继续用尽"PermGen"空间,这显然是在1.3中修复的.这就是我想要移植的原因.
更新:Rich Hickey已经承认这是Clojure中的一个问题,并且perm gen和关键字的问题似乎是固定的,但在1.3中通过使关键字使用弱引用:
http://groups.google.com/group/clojure/browse_thread/thread/4308d846bf2ef129
我有一个有序的地图,如下:
{:a 1 :b 2 :c 3}
Run Code Online (Sandbox Code Playgroud)
:并给出一个排序列表,如:
[:c :a]
Run Code Online (Sandbox Code Playgroud)
:我想找到最简单的方法:
{c: 3 :a 1}
Run Code Online (Sandbox Code Playgroud)
: 有谁知道如何做到这一点?
更新:
(defn asort [amap order] (conj {} (select-keys amap order)))
(asort {:a 1 :b 2 :c 3} [:c :a] )
Run Code Online (Sandbox Code Playgroud) 我有这样的地图:
(def a {:a 1, :b 2})
Run Code Online (Sandbox Code Playgroud)
:我希望重载映射,以便某些关键字执行函数,以便:
(c: a)
Run Code Online (Sandbox Code Playgroud)
可以执行一个功能.这可能吗?
我意识到我可以这样做:
(def a {:a (fn[] 1) :b (fn[] 2) :c (fn[] x)})
Run Code Online (Sandbox Code Playgroud)
:和:
((c: a))
Run Code Online (Sandbox Code Playgroud)
:但是我必须将我拥有的每个现有地图条目转换为一个函数.
我希望每次都能重新评估这个功能.例如,当我这样做时:
(def ab{:a 1 :b 2 :c ( #(.nextInt (java.util.Random.) 1000))})
(str (:c ab) " " (:c ab) " " (:c ab))
Run Code Online (Sandbox Code Playgroud)
我明白了:
61 61 61
Run Code Online (Sandbox Code Playgroud)
而不是三个不同的数字
我想到了我给出的答案并意识到他是对的,我应该只使用不可变结构.我想出的最终解决方案是拥有一个"丰富"功能,可以根据需要创建动态属性.
(def a {:a 1, :b 2})
Run Code Online (Sandbox Code Playgroud)
:我希望重载映射,以便某些关键字执行函数,以便:
(str (:c (enrich ab)) " " (:c (enrich ab)) " " (:c (enrich ab)))
Run Code Online (Sandbox Code Playgroud)
每次会产生不同的数字:
58 …Run Code Online (Sandbox Code Playgroud) 我正在使用Clojure数据结构,但我没有使用任何懒惰的评估.在所有地方使用懒惰结构会有性能损失吗?
我最近一直在使用Clojure的类型和记录,我想知道这些是非常新的概念,还是受到Common Lisp对象系统的启发?
我知道Clojure在多核计算机上运行良好,但我想知道它是否适用于在多台计算机上分布的JVM集群?
在Clojure中,如何读取Java类实例的公共成员变量?我想要的东西:
(. instance publicMemberName)
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
instance/publicMemberName
Run Code Online (Sandbox Code Playgroud)
但这只适用于静态方法
我知道monad可用于clojure,但有没有人证实他们在clojurescript中工作?
我希望使用Clojurescript设置"input"元素的"value"属性,但是我在goog.com中遇到了setProperties的语法问题.有没有人有一个工作的例子?
更新------
这似乎有效:
(goog.dom.setProperties
(goog.dom/getElement "element-name")
(clj->js {:value "text"}))
Run Code Online (Sandbox Code Playgroud)