标签: clojurescript

aset不会在clojurescript中链接

我发现一个结果是clojurescript,因为aset是链接的:

(def data (js-obj))
(-> data 
    (aset "a" "a")
    (aset "b" "b"))

(aget data "a") ;=> "a"
(aget data "b") ;=> 'returns nothing'
Run Code Online (Sandbox Code Playgroud)

(-> 1 inc dec) ;=> returns 1, which is fine
Run Code Online (Sandbox Code Playgroud)

clojure clojurescript

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

在Clojurescript中创建一个新数组

当我使用[]表达式编译时cljs.core.PersistentVector.EMPTY,看起来像[]映射到同一对象的所有表达式.

我读过我不应该使用new Array().这仍然值得关注吗?

因为我打算调用aset这个数组,所以每次调用都需要一个新对象.我该怎么办?

clojurescript

2
推荐指数
1
解决办法
1515
查看次数

函数/宏仅在参数从上次调用更改时才执行函数体

这应该类似memoize,但非常不同.虽然memoize应该与纯函数一起使用,但加速IO相关函数通常很有用.

我正在寻找的函数/宏应该表现得像高阶函数.它产生的功能应该:

  • 当第一次调用时,它应该调用原始函数,将参数传递给它
  • 记住:参数,返回值
  • 当第二次被叫时
    • 使用相同的参数:它应该返回memoized返回值
    • 使用不同的参数:忘记最后的参数并返回值,调用原始函数,记住当前参数和返回值
  • 当第n次调用时,总是将参数与最后一次调用进行比较,并且行为如上所述.

macros functional-programming clojure clojurescript

2
推荐指数
1
解决办法
139
查看次数

clojurescript迭代对象的键

我正在使用clojurescript 0.0-2371,我正在尝试编写一些克隆对象的代码.我有这个代码,我想克隆一个节点并调用一个clone-object函数:

(def animate
  (js/React.createClass
   #js
   {:getInitialState
    (fn []
      (this-as this
               {:children
                (->
                 (.. this -props -children)
                 (js/React.Children.map (fn [child] child))
                 (js->clj :keywordize-keys false))}))
    :render
    (fn []
      (this-as this
               (let [children (:children (.. this -state))]
                 (doseq [[k v] children]
                   (clone-object (aget children k))))))}))
Run Code Online (Sandbox Code Playgroud)

clone-object 看起来像这样:

(defn clone-object [obj]
  (log/debug obj)
  (doseq [[k v] obj]
    (log/debug k)))
Run Code Online (Sandbox Code Playgroud)

如果我这样打电话clone-object:

(doseq [[k v] children]
  (clone-object v))
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

未捕获的错误:[object Object]不是ISeqable

clojurescript

2
推荐指数
1
解决办法
3161
查看次数

是否可以将此ClojureScript转换为JavaScript?

我的朋友向我展示了一篇利用ClojureScript宏的博客文章,他声称由于JavaScript缺乏对该语言的宏支持,所提供的代码无法优雅地转换为JavaScript.具体来说,go此代码段中的宏在JavaScript中是不可能的

(def c (chan))

(defn render [q]
  (apply str
    (for [p (reverse q)]
      (str "<div class='proc-" p "'>Process " p "</div>"))))

(go (while true (<! (timeout 250)) (>! c 1)))
(go (while true (<! (timeout 1000)) (>! c 2)))
(go (while true (<! (timeout 1500)) (>! c 3)))

(defn peekn
  "Returns vector of (up to) n items from the end of vector v"
  [v n]
  (if (> (count v) n)
    (subvec v (- (count v) n))
    v))

(let …
Run Code Online (Sandbox Code Playgroud)

javascript macros clojurescript

2
推荐指数
1
解决办法
112
查看次数

Clojurescript`.-name`惯例

我一直在努力学习ClojureScript并偶然发现了一些非常神秘的函数名称.

例如:

(.-length str)

来自om文档:

(defn add-contact [data owner]
  (let [new-contact (-> (om/get-node owner "new-contact")
                        .-value ;;What is this?
                        parse-contact)]
    (when new-contact
      (om/transact! data :contacts #(conj % new-contact)))))
Run Code Online (Sandbox Code Playgroud)

那是什么意思.-

clojure clojurescript

2
推荐指数
1
解决办法
70
查看次数

core.async频道上的传感器

如果我有10个缓冲的订阅频道,每个频道都有一个需要5秒才能执行的传感器.换能器是同时执行还是全部在同一个线程上执行(假设多线程上下文)?

clojure clojurescript core.async

2
推荐指数
1
解决办法
468
查看次数

Cljs:在编译时硬编码编译日期

有人会给我提示(或整个解决方案!)这个问题:

在Clojurescript项目中,如何在使用应用程序时自动对符号中的编译日期/时间进行硬编码以显示它?

谢谢.

compilation clojurescript

2
推荐指数
1
解决办法
88
查看次数

为什么clojurescript用" - "调用某些js函数而其他函数不调用?

在clojurescript一些功能开始一个连字符-.-onloadjs/window上下文或.-fillstyle在画布背景,而其他人一样.getElementById不以开始-连字符.为什么这个特点?我在这里失踪了什么?

clojurescript

2
推荐指数
1
解决办法
61
查看次数

如何每次从重复功能获得不同的值?

我每次得到10个相同的结果:

(repeat 10 (rand 10))
Run Code Online (Sandbox Code Playgroud)

例如:

=> (2.54681114871718 2.54681114871718 2.54681114871718 2.54681114871718 2.54681114871718 2.54681114871718 2.54681114871718 2.54681114871718 2.54681114871718 2.54681114871718)
Run Code Online (Sandbox Code Playgroud)

我假设它是某种记忆,我是对的吗?我每次如何获得不同的价值?

clojure clojurescript

2
推荐指数
1
解决办法
125
查看次数