有什么功能之间的差异doall,dorun,doseq,和for?
我发现一些信息散布在整个互联网上,但我认为最好将这些信息集中在这里.
这是个简单的.但无论如何,我认为在这里回答这个问题是一个好主意,以便更快,更容易地参考.
这个操作:
(/ 3 2)
Run Code Online (Sandbox Code Playgroud)
得出这个:
3/2
Run Code Online (Sandbox Code Playgroud)
我需要一个函数来向上舍入,这将产生2和另一个向下舍入,这将产生1.
seq的功能有什么区别?顺序?和科尔?
我发现一些信息散布在整个互联网上,但我认为最好将这些信息集中在这里.
我有一个函数生成称为函数的惰性序列.
如果我运行代码:
(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
关于这个问题,互联网上散布着很多信息.
有谁能给我一个关于clojure网络应用程序部署的概述?独立服务器中的部署与无容器aproach之间的差异?亚马逊的Elastic Beanstalk(EB),Heroku,Google App Engine等不同参与者的优缺点是什么?支持maven和lein?
谢谢!
deployment google-app-engine clojure heroku amazon-elastic-beanstalk
clojure中有alter-var-root。为什么cljs中没有它?
如果我这样做:
(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)
既然两者是等价的,为什么代码总是不起作用?
我在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字符.
我有这个 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) 我有这个功能:
(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.我知道我可以将这些变量放在我的功能之外以使其工作.但我想将这些定义保留在我的功能中.我怎样才能做到这一点?
clojure ×9
concat ×1
deployment ×1
dockerfile ×1
heroku ×1
rounding ×1
sdkman ×1
sh ×1
sorting ×1
var ×1