小编Lov*_*ing的帖子

如何将clojurescript集成到现有的javascript代码库?

我正在使用试剂在clojurescript中编写插件功能.我想在现有的react,flux应用程序中使用它.

我应该如何连接这两个?

clojure clojurescript reactjs reagent

3
推荐指数
1
解决办法
304
查看次数

如何在clojure中深层嵌套的向量中交换所有元素对?

说我有类似的东西

[[[[1 2] [3 4] [5 6]]] [[[7 8] [9 10]]] [[[2 4]]]]
Run Code Online (Sandbox Code Playgroud)

我想交换最内层的对来做它

[[[[2 1] [4 3] [6 5]]] [[[8 7] [10 9]]] [[[4 2]]]]
Run Code Online (Sandbox Code Playgroud)

假设在得到数据之前我不知道深度,并且所有对都处于相同的深度级别.

实现这一目标的惯用方法是什么?

clojure clojurescript

3
推荐指数
1
解决办法
108
查看次数

clojure subvec O(n)而不是O(1)?

所以我有

(def a (vec (range 1000000)))
(def b (vec (range 100000)))
Run Code Online (Sandbox Code Playgroud)

并采取两个向量的其余部分

(time (dorun (subvec b 1 100000)))
=>"Elapsed time: 3.585556 msecs"
(time (dorun (subvec a 1 1000000)))
=>"Elapsed time: 43.088316 msecs"
Run Code Online (Sandbox Code Playgroud)

医生说这个操作需要O(1).我错过了什么吗?

clojure

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

如何将while循环转换为clojure代码

例如,扩展的欧几里德算法(引自维基):

function extended_gcd(a, b)
    x := 0    lastx := 1
    y := 1    lasty := 0
    while b ? 0
        quotient := a div b
        (a, b) := (b, a mod b)
        (x, lastx) := (lastx - quotient*x, x)
        (y, lasty) := (lasty - quotient*y, y)       
    return (lastx, lasty)
Run Code Online (Sandbox Code Playgroud)

我试过并得到了:

 (defn extended-gcd 
  [a b]
  (loop [a a b b x 0 y 1 lx 1 ly 0]
     (if (zero? b)
      [lx ly]
      (recur b (mod a b)
             (- lx (* …
Run Code Online (Sandbox Code Playgroud)

clojure

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

标签 统计

clojure ×4

clojurescript ×2

reactjs ×1

reagent ×1