小编Ale*_*ler的帖子

是否有一个Elixir等同于Clojure(源fn-name)?

Clojure有一种方便的方法来查看REPL中函数的定义.Elixir REPL中有一个吗?

clojure elixir

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

ClojureScript地图查找速度慢

我有一张简单的地图:

(def my-map
  {[1 2 3] 1
   [1 2 4] 5
   [3 4 2] 3
   [4 5 3] 3
   [5 2 5] 6
   [9 2 1] 5
   [8 3 1] 6})
Run Code Online (Sandbox Code Playgroud)

我用来执行查找.然而,这表现得相当糟糕:

(time (doseq [x (range 500)]
        (my-map [1 2 8])))

"Elapsed time: 170 msecs"
Run Code Online (Sandbox Code Playgroud)

在同一台机器上,Clojure可以在大约236毫秒内完成500,000,或者大约700倍.虽然Clojure比ClojureScript更快并不出人意料,但我很困惑为什么ClojureScript会慢得多.

关于如何在ClojureScript中以高效且可读的方式制作简单的多值查找地图的任何想法?我知道做一堆ifs而不是使用矢量键解决方案肯定会更快,但我正在寻找一些更具可读性/可维护性的东西.

只是为了更新更多信息.以上是在Firefox中完成的,因此比V8慢.下列:

(def my-map2
  (into cljs.core.PersistentHashMap/EMPTY
        {[1 2 3] 1
         [1 2 4] 5
         [3 4 2] 3
         [4 5 3] 3
         [5 2 5] 6
         [9 2 1] 5
         [8 3 …
Run Code Online (Sandbox Code Playgroud)

clojure clojurescript

4
推荐指数
1
解决办法
453
查看次数

如何从防火墙后面安装Leiningen自行安装?

我可以使用下载leiningen和所有相关内容的完整下载吗?我无法更改本地网络上的代理设置,这是我得到的错误:

带有"2"参数的"DownloadFile":"远程服务器返回错误:(407)需要代理验证."

更新

您需要下载Leiningen独立jar,然后将LEIN_JAR指向它:

 set LEIN_JAR=full path to leiningen standalone jar
Run Code Online (Sandbox Code Playgroud)

clojure leiningen

4
推荐指数
1
解决办法
1713
查看次数

如何在 clojurescript 中制作 IDerefable?

有没有办法通过实现 IDeref 在 cljs 中创建另一个容器,就像在 clojure 中一样?

(reify clojure.lang.IDeref
     (deref [_] ...))
Run Code Online (Sandbox Code Playgroud)

编译器警告 IDeref 不是协议

clojure clojurescript

4
推荐指数
1
解决办法
680
查看次数

这个"#"在这个Clojure语境中意味着什么?

我偶然发现了"examples/mixins"下的官方Om示例,其定义如下:

(def MyComponent (let [obj (om/specify-state-methods! (clj->js om/pure-methods))]
    (aset obj "mixins" #js [TestMixin])
    (js/React.createClass obj)))
Run Code Online (Sandbox Code Playgroud)

"#js"是什么意思?当它以这种方式使用时,我找不到符号"#"的任何Clojure文档.

clojure clojurescript om reader

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

ReferenceError:运行lein cljsbuild时未定义"goog"

我开始使用clojurescript并将lein-cljsbuild添加到我的project.clj:

(defproject hello-world "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [org.clojure/clojurescript "0.0-1450"]]
  :plugins [[lein-cljsbuild "1.0.3"]]
  :cljsbuild {:builds []})
Run Code Online (Sandbox Code Playgroud)

当我在PowerShell和命令窗口中运行以下命令时:

lein trampoline cljsbuild repl-rhino
Run Code Online (Sandbox Code Playgroud)

我一直收到以下错误:

(Retrieving cljsbuild/cljsbuild/0.2.7/cljsbuild-0.2.7.jar from clojars)
Exception in thread "main" org.mozilla.javascript.EcmaError: ReferenceError: "goog" is not defined. (bootjs#1), 
compiling:(C:\Users\Karthik\AppData\Local\Temp\form-init8943880809592678534.clj:1:127)
Run Code Online (Sandbox Code Playgroud)

我还需要做什么?上面的步骤在ClojureScript:Up and Running一书中概述,但对于lein-cljsbuild"0.2.7"

clojure leiningen clojurescript

4
推荐指数
1
解决办法
2402
查看次数

如何在Light Table中自动保存智能缩进文件

我想保存格式良好的Clojure代码.Eclipse可以在每次保存文件时格式化代码.在Light Table中拥有相同的内容会很不错.手动,我可以通过选择全部(ctrl+ a)然后运行(ctrl+ space)来实现Editor: Smart indent line(s).有没有办法在每次保存文件时自动执行此操作?

clojure lighttable

4
推荐指数
1
解决办法
1281
查看次数

在Windows上使用Gin Bash中的Leiningen

所以我在窗户上安装了Leiningen和git.但是git bash似乎没有找到lein命令,因为它基于.bat文件.它适用于Windows命令行.有没有办法让lein命令在git bash中工作?

windows clojure leiningen git-bash

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

F#:分区函数就像Clojure中的那样

Clojure有一个很好的函数叫做分区,它可以处理序列.它将给定的序列分成一系列同样长的列表.第一个参数指定fragaments的长度.第二个参数是一个偏移量,它指定片段的下一个开始.

(partition 3 1 (range 5))
;;=> ((0 1 2) (1 2 3) (2 3 4))

(partition 4 6 (range 20))
;;=> ((0 1 2 3) (6 7 8 9) (12 13 14 15))

(partition 4 3 (range 20))
;;=> ((0 1 2 3) (3 4 5 6) (6 7 8 9) (9 10 11 12) (12 13 14 15) (15 16 17 18))
Run Code Online (Sandbox Code Playgroud)

https://clojuredocs.org/clojure.core/partition

我正在寻找F#中的等效函数.显然,List.partition还有其他功能(https://msdn.microsoft.com/en-us/library/ee353782.aspx).也许有一个图书馆提供这样的功能?

f# clojure

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

如何在一个命令中执行多个lein任务?

我是leiningen的新手.

当我试图执行以下时,

$ lein clean jar
Run Code Online (Sandbox Code Playgroud)

我有

Wrong number of arguments to clean task. 
Expected []
$ 
Run Code Online (Sandbox Code Playgroud)

如何在一个命令中执行多个任务?

clojure leiningen

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

标签 统计

clojure ×10

clojurescript ×4

leiningen ×4

elixir ×1

f# ×1

git-bash ×1

lighttable ×1

om ×1

reader ×1

windows ×1