标签: clojurescript

私人def in clojure/clojurescript

在Clojure和clojurescript中你可以拥有一个名为defn-的defn的私有版本,但你如何对def做同样的事情,因为def-似乎不包括在内?

clojure clojurescript

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

任何clojurescript教程?

ClojureScript上有一些很好的教程吗?我想尝试一下,但不知道从哪里开始.

clojure clojurescript

40
推荐指数
5
解决办法
8517
查看次数

榆树与ClojureScript相比如何?

我已经到了使用Backbone.js面向对象的MVC模式的GUI编码变得非常复杂并且环顾其他范例的程度.MDV,FRP,ECS,哦,我的.

榆树ClojureScript相比如何?它们在哪里重叠?

两者都是与编译为JS的JS非常不同的语言.我知道Elm是一种功能性反应式编程(FRP)语言.ClojureScript不一定是FRP,但你可以用它来做FRP.Elm使用JVM编译Haskell和ClojureScript,因此这些都是Node商店的额外要求.

也许它只是归结为Clojure vs Haskell.

clojurescript elm

39
推荐指数
3
解决办法
7077
查看次数

Clojurescript Om中应用程序状态和组件本地状态有什么区别?

我已经阅读了David Nolen的基本Om教程,但我仍然对应用程序状态和组件本地状态之间的区别感到困惑.当提到游标时,它也指的是其中一个或两个?

clojurescript om

35
推荐指数
1
解决办法
3098
查看次数

deftype vs. defrecord

虽然defrecord是Clojure中用于定义"实体"的一般情况的首选形式,但在ClojureScript中,可以找到更多的引用deftype,如各种 文档中所反映的那样.

两种形式有什么区别?哪个应该更喜欢?

clojure clojurescript

31
推荐指数
1
解决办法
5415
查看次数

Clojurescript中的Javascript互操作分配

愚蠢的问题:如何在Clojurescript中进行Javascript分配?我正在使用Javascript lib并且需要设置对象字段的值obj.this=that;- 我不知道Javascript所以也许有.set方法?

javascript variable-assignment clojurescript

30
推荐指数
2
解决办法
6108
查看次数

如何调试ClojureScript

我为这个看似愚蠢的问题道歉,但我现在已经开始使用ClojureScript几周了,我无法弄清楚这个简单的问题:

我如何调试ClojureScript?

所以这是问题所在:

  1. 我写了*.cjs文件
  2. 我运行cljsc/build ...
  3. 我加载了我的网页.
  4. 发生了一件坏事.
  5. 我打开了firefox控制台.
  6. 我在生成的 js中得到一行,我发现这是不可理解的,我不知道它来自哪个原始cljs文件行.

我的问题:

开发ClojureScript应用程序的正确方法是什么?

PS我看过ClojureScriptOne - 我不喜欢的是它将所有技术同时捆绑在一起; 而且我更愿意在将它们连在一起之前了解如何单独使用每个单独的部分.

我对ring + mustache + compojure很满意,[主要是因为我可以使用我的标准Clojure调试技术]但是ClojureScript是另一个野兽.

更新:自从第一次提出这个问题以来,情况发生了很大的变化.这些天调试ClojureScript应用程序的正确方法是启用源映射 - http://github.com/clojure/clojurescript/wiki/Source-maps

clojure clojurescript

28
推荐指数
5
解决办法
6156
查看次数

在Clojurescript中访问"this"

有没有办法在clojurescript中访问"this"对象?

有问题与事件传播,当我换一个图标与锚,并尝试一个handlder连接到锚.如果在处理程序中无法访问"this",我会不时处理触发事件的内部图标,而其他时候会触发锚点.

编辑:

如下所示,这就是这样做的方式.一个例子可能是

(defn my-handler
  [e]
  (this-as this
    (let [data-attr (.data ($ this) "my-attr")]
      (log data-attr))))
Run Code Online (Sandbox Code Playgroud)

javascript google-closure clojurescript

27
推荐指数
1
解决办法
4985
查看次数

clojurescript中core.async的优点是什么?

每个人都在谈论core.async有多棒,以及如何改进clojurescript中的事件处理.我一直在关注ClojureScript 101教程,我没有从这些代码示例中看到任何明显的优势.我错过了什么?

为什么在这里使用core.async更好?

(defn listen [el type]
  (let [out (chan)]
    (events/listen el type
      (fn [e] (put! out e)))
    out))

(defn dosomethingasync
  [e]
  (js/console.log "async: " e))

(let [clicks (listen (dom/getElement "search1") "click")]
  (go (while true (dosomethingasync (<! clicks)))))
Run Code Online (Sandbox Code Playgroud)

(defn dosomethingcallback
   [e]
   (js/console.log "callback: " e))

(events/listen (dom/getElement "search2") "click" dosomethingcallback)
Run Code Online (Sandbox Code Playgroud)

clojurescript core.async

26
推荐指数
1
解决办法
6321
查看次数

我怎样才能得到Clojure:pre&:post来报告他们失败的价值?

(defn string-to-string [s1] 
  {:pre  [(string? s1)]
   :post [(string? %)]}
  s1)
Run Code Online (Sandbox Code Playgroud)

我喜欢:pre和:post条件,它们允许我弄清楚我何时更快地将"方形钉子放在圆孔中".也许这是错误的,但我喜欢将它们用作一种可怜的勒芒式检查器.这不是哲学,这是一个简单的问题.

在上面的代码中我似乎很容易确定这s1:pre条件中的函数参数.类似地,%:post条件总是函数返回值.

我想是打印的值s1或者%当任的这些相应的条件Asse田内失效.所以我得到了类似的东西

(string-to-string 23)

AssertionError Assert failed: (string? s1) 
(pr-str s1) => 23 
Run Code Online (Sandbox Code Playgroud)

AssertionError包含每个变量的单行,该变量被识别为来自函数参数列表并且在失败测试中被引用.当函数的返回值未通过:post条件时,我也想要类似的东西.

这将使得在尝试从AssertionError进行诊断时快速发现我滥用函数的方式变得微不足道.它至少会让我知道值是否nil是实际值(这是我犯的最常见的错误).

我有一些想法,这可能与宏来完成,但我想知道如果有办法基本上只是重新定义了任何安全和全球性的方式(defn(fn朋友们这样做是:pre:post也将打印导致测试值(S)失败.

clojure clojurescript

26
推荐指数
2
解决办法
4301
查看次数