小编kos*_*tas的帖子

在clojure中的矩阵转置

在clojure中,矩阵的可能表示是向量的向量,即[[1 2] [3 4]].转置矩阵的可能实现方式是:

(defn transpose [matrix]
  (loop [matrix matrix, transp [], i 0]
    (if (< i (count (nth matrix 0)))
      (recur matrix 
             (conj transp
                   (vec (reduce concat
                                (map #(conj [] (nth %1 i))
                                     matrix))))
             (inc i))
      transp)))
Run Code Online (Sandbox Code Playgroud)

任何人都可以想到更具惯用性的clojure实现吗?例如,以避免这个可怕的循环复发?

clojure matrix

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

将python连接到oracle

我已经安装了oracle客户端和oracle client-dev,并设置了ORACLE_HOME环境变量.然而,当我尝试安装tux_oracle(python setup.py build)时,我得到以下内容:致命错误:oci.h:没有这样的文件或目录

python oracle cx-oracle

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

计算数组中向量之间的最大距离

假设我们有一个包含n个向量的数组。我们要计算这些向量之间的最大欧几里得距离。最简单的方法是对数组进行迭代,然后为每个向量计算其与所有后续向量的距离,然后找到最大值。但是,该算法会增长(n-1)!关于数组的大小。

还有其他更有效的方法来解决此问题吗?

谢谢。

algorithm complexity-theory

6
推荐指数
1
解决办法
3229
查看次数

如何在Clojure中找到此向量的最小成员的索引?

我使用以下表达式来检索向量中最小数字的索引.但是,我想避免使用.indexOf(出于效率原因和数字精度,尽管我猜数字是隐式转换为字符串).

(.indexOf [1 2 3 4 0 5]
  (reduce #(if (< %1 %2) %1 %2) [1 2 3 4 0 5] ))
Run Code Online (Sandbox Code Playgroud)

是否可以使用reduce进行不同的操作?

reduce clojure

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

使用 Clojure 的 FTP

是否有任何库可以使用 clojure 执行 FTP 传输,是 clojure 的惯用语,还是有必要使用 java 库,例如 apache commons?

谢谢

ftp clojure

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

无法通过逐个元素循环来更新向量

我试图通过循环设置向量的每个元素等于3.我明白了:

java.lang.ClassCastException:clojure.lang.PersistentVector无法强制转换为java.lang.Number

这是代码.

(def w [1 2 3])
(defn update [index value]
  (assoc w index value))

(loop [i -1]
  (if (< (count w) i)
    w
    (recur (update (+ i 1) 3))))
Run Code Online (Sandbox Code Playgroud)

loops vector clojure

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

如何在Jpanel中显示incanter图

有没有人知道如何在没有恢复到jfreechart的情况下向jpanel显示incanter图表?

clojure incanter

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

Clojure,懒惰的评估问题

考虑clojure中的以下代码:

(让[a(find-a),b(find-b)](println a)(println b))

其中b是序列.函数find-a中也有一些println语句.我期望在标准输出中看到的是:a,来自find-a,b中的println语句的结果.但是,我得到的是:a,b的一部分,来自find-a中的println语句,b的其余部分.

这是由于序列的懒惰评估?

clojure

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

从compojure和ring提供静态文件

我使用lein创建了一个项目,然后在项目的根目录中创建了一个目录public来放置静态内容.

但是,静态内容未按预期提供.

这是defroutes:

(defroutes greeter
  (GET "/greeter/working" []
    (html
      [:html
        [:head [:tile "bla"]]
        [:body [:image "oops.jpg"]]
       ]
      )
    )
  (GET "/greeter/sayhi" [] "say hi")
  (GET "/greeter/" [] "top level")
  (route/files "/" {:root (str (System/getProperty "user.dir") "\\public")})

(defn -main []
  (run-jetty greeter {:port 3000 :join? false}))
Run Code Online (Sandbox Code Playgroud)

clojure compojure ring

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

Clojure Inconsistent在执行函数期间导致clojure

Clojure问题

我在clojure中编写了以下函数:在第一个循环中,它迭代一个映射列表并创建一个映射.然后第二个循环迭代一个列表,匹配先前创建的映射数据和一个向量并返回一个新映射.但是,使用相同数据的不同运行会产生不同的结果.见下文.

(defn resolve-case-per-period
  "Constructs a map by matching data existing in input parameter vectors"
  [dd case-details periods]
  (let [cases ((fn [in] 
                 (loop [case-details in, result-map {}] 
                   (if (= (count case-details) 0) 
                     result-map 
                     (recur (rest case-details) 
                            (assoc result-map
                              (:priority (first case-details)) 
                              (:caseid (first case-details)))))))
               case-details)
         periods periods]
    (info "Mapping cases to periods step 1 completed " cases)
    (loop [periods periods, result-map {}]
      (if (= (count periods) 0)
        result-map
        (recur (rest periods) 
               (conj result-map
                     { (str (:period (first periods)))
                       (get cases …
Run Code Online (Sandbox Code Playgroud)

clojure

0
推荐指数
1
解决办法
116
查看次数