小编Car*_*nes的帖子

doall dorun doseq和for的功能有什么区别?

有什么功能之间的差异doall,dorun,doseq,和for

我发现一些信息散布在整个互联网上,但我认为最好将这些信息集中在这里.

clojure

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

在Clojure中围绕数字的最佳方法是什么?

这是个简单的.但无论如何,我认为在这里回答这个问题是一个好主意,以便更快,更容易地参考.

这个操作:

(/ 3 2)
Run Code Online (Sandbox Code Playgroud)

得出这个:

3/2
Run Code Online (Sandbox Code Playgroud)

我需要一个函数来向上舍入,这将产生2和另一个向下舍入,这将产生1.

clojure rounding

32
推荐指数
3
解决办法
2万
查看次数

函数seq ?,顺序有什么区别?和科尔?

seq的功能有什么区别?顺序?和科尔?

我发现一些信息散布在整个互联网上,但我认为最好将这些信息集中在这里.

clojure

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

mapcat打破了懒惰

我有一个函数生成称为函数的惰性序列.

如果我运行代码:

(map a-function a-sequence-of-values) 
Run Code Online (Sandbox Code Playgroud)

它按预期返回一个惰性序列.

但是当我运行代码时:

(mapcat a-function a-sequence-of-values) 
Run Code Online (Sandbox Code Playgroud)

它打破了我的功能的懒惰.事实上,它将代码转换为

(apply concat (map a-function a-sequence-of-values)) 
Run Code Online (Sandbox Code Playgroud)

因此,在连接这些值之前,需要从地图中实现所有值.

我需要的是一个函数,它可以根据需要连接map函数的结果,而不事先预先知道所有的map.

我可以为此修改一个函数:

(defn my-mapcat
  [f coll]
  (lazy-seq
   (if (not-empty coll)
     (concat
      (f (first coll))
      (my-mapcat f (rest coll))))))
Run Code Online (Sandbox Code Playgroud)

但我不敢相信clojure没有做过任何事情.你知道clojure有这样的功能吗?只有少数人和我有同样的问题?

我还找到了一个处理相同问题的博客:http://clojurian.blogspot.com.br/2012/11/beware-of-mapcat.html

concat clojure lazy-sequences

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

哪些部署clojure Web应用程序的方式不同?

关于这个问题,互联网上散布着很多信息.

有谁能给我一个关于clojure网络应用程序部署的概述?独立服务器中的部署与无容器aproach之间的差异?亚马逊的Elastic Beanstalk(EB),Heroku,Google App Engine等不同参与者的优缺点是什么?支持maven和lein?

谢谢!

deployment google-app-engine clojure heroku amazon-elastic-beanstalk

6
推荐指数
0
解决办法
150
查看次数

为什么clojurescript中没有alter-var-root?

clojure中有alter-var-root。为什么cljs中没有它?

clojure clojurescript

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

在语法引用中不断函数不起作用

如果我这样做:

(eval (let [f (fn [& _] 10)]
    `(~f nil)))
Run Code Online (Sandbox Code Playgroud)

它按预期返回 10。

虽然如果我这样做:

(eval (let [f (constantly 10)]
    `(~f nil)))
Run Code Online (Sandbox Code Playgroud)

它抛出一个异常:

IllegalArgumentException No matching ctor found for 
  class clojure.core$constantly$fn__... clojure.lang.Reflector.invokeConstructor 
Run Code Online (Sandbox Code Playgroud)

既然两者是等价的,为什么代码总是不起作用?

clojure

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

在Clojure中对拉丁字符串进行排序

我在REPL做了这个实验:

(sort ["maa" "ácw" "ijl" "aez" "jkl"])
Run Code Online (Sandbox Code Playgroud)

我懂了:

("aez" "ijl" "jkl" "maa" "ácw")
Run Code Online (Sandbox Code Playgroud)

正确的答案是这样的:

("ácw" "aez" "ijl" "jkl" "maa")
Run Code Online (Sandbox Code Playgroud)

有没有办法在Clojure中对拉丁字符串进行本地排序?如果不是为什么不呢?

看,我没有问如何排序,我知道我可以通过管道传递seq并替换非ANSI字符.

sorting clojure

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

sdkman 不在 dockerfile 中安装 java

我有这个 docker 文件:

# We are going to star from the jhipster image
FROM jhipster/jhipster

# install as root
USER root

### Setup docker cli (don't need docker daemon) ###
# Install some packages
RUN apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y

# Add Dockers official GPG key:
RUN ["/bin/bash", "-c", "set -o pipefail && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -"]

# Add a stable repository
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# Setup aws credentials …
Run Code Online (Sandbox Code Playgroud)

sh dockerfile sdkman

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

clojure:在函数内部定义的var是破坏前提条件

我有这个功能:

 (defn executa-peso-individuo 
   [estado-individuo transicao-individuo]
   (def tipos-transicoes-peso #{:troca-peso :mesmo-peso})
   (def tipos-estados-peso #{:d :e})
   {:pre [(contains? tipos-transicoes-peso
                     (:peso transicao-individuo))
          (contains? tipos-estados-peso
                     (:peso estado-individuo))]
   ...
Run Code Online (Sandbox Code Playgroud)

先决条件不起作用.不知何故,vars tipos-transicoes-pes和tipos-estados-peso在前置条件代码中创建了一个bug.我知道我可以将这些变量放在我的功能之外以使其工作.但我想将这些定义保留在我的功能中.我怎样才能做到这一点?

var clojure preconditions

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