我现在要做的就是打开project.clj,添加依赖那里,运行lein deps重启REPL,那么use,require等等.
问题是我真的不想重新启动repl,因为启动时间很慢,我不得不重新加载我的文件.
那么是否有更好的方法为lein项目添加依赖?没有重新启动repl?
之后git push -u origin master
我得到:
git://
当我尝试克隆其他repo时发生同样的错误.
端口8087似乎不忙.怎么可能出错?
编辑:当我从git://而不是https://进行克隆时,它可以正常工作.
我正在尝试构建一个Web应用程序,我想在amazon s3上存储所有html,js和css文件,并通过api与一个安静的服务器进行通信.
我试图实现延迟加载,并可能使用react路由器进行路由.似乎webpack具有此功能代码拆分,其工作方式与延迟加载类似.
但是,我发现的所有教程和示例都涉及webpack-dev-server,它是一个小型节点快速服务器.反正我是否可以在构建时生成bundle并将所有内容上传到amazon s3并实现与Angular的ocLazyLoading类似的东西?
我想在emacs中设置一个编辑clojure的环境.我对emacs(仅1年)相对较新,而且对于clojure(2周)来说是全新的.我在网上找到了很多关于如何设置lein,swank-clojure,slime和nrepl的教程.似乎swank-clojure和slime需要一起工作但是swank-clojure已经弃用了,所以剩下的就是nrepl和一些内置的lisp repl模式.
我首先尝试了劣质的lisp模式,因为它是clojure-mode的默认模式,它对我来说很好看.但我似乎无法找到一种方法在其中轻松切换命名空间.
然后我尝试了emacs-live,这就像是nrepl附带的emacs新手的工具包.然后我可以做"nrepl-jack-in"来获得一个repl,即使它非常慢..它可以用"CC Mn"轻松切换名称空间.然而,在切换之后的某个时候,会弹出一个名为nrepl错误的缓冲区,并且不会让我关闭.我必须强制关闭emacs.此外,nrepl没有太多的语法高亮.
总结一下:在swank-clojure被弃用之后,我应该使用哪个repl?煤泥REPL?nrepl?或其他人?
我现在对clojure知之甚少,所以我不确定bre功能对于repl很重要但是至少有语法高亮并且可以在nrepl中像"CC Mn"之类的命名空间之间轻松切换,这可能是一件好事.调试器.
我正在使用emacs前奏曲.
我最近决定从ido切换到头盔.
所以我启用helm并helm-everywhere在emacs前奏中,
一切都很完美,除了默认行为 helm-find-file
在Ido,我可以点击ret选定目录,但我必须击中right或c-j掌舵.此外,helm-find-files将列出.并..在每个目录的最顶部.这意味着在ido中,ret ret ret如果沿路径的目录不多,我可以直到达到最终目的地.
但掌舵,我不得不输入一些字符,c-j打字类型至少1个字符,点击c-j等等.我甚至不能c-j连续打.
我不想切换回ido,因为我真的很喜欢find-file中的helm的grep功能.
无论如何我可以更改默认顺序,让它可能列表.,..在底部,并ret输入目录而不是打开直接?
假设我有一个组件需要在渲染之前从服务器请求一些数据.
我现在拥有的是与cljs-ajax图书馆类似的东西:
(def data (r/atom nil))
(defn component [id]
(r/create-class {:reagent-render simple-div
:component-did-mount (partial get-data id)}))
(defn get-data [id]
(GET (str "/api/" id)
{:handler init}))
(defn init [response]
(let [data1 (:body response)
data2 (compute data1)
data3 (compute2 data2)]
(reset! data (compute3 data1))
(.setup @data data1)
(.setup2 @data data2)
(.setup3 @data data3))
Run Code Online (Sandbox Code Playgroud)
该setup功能是国外一些JS库函数有副作用.
这有效,但我不觉得这是回调的正确方法.更不用说我是否需要GET基于我得到的第一个数据的其他数据,然后基于它的其他数据,它将是一个非常讨厌的回调链.
在试剂/ clojurescript中有没有更好,更干净的方式来做这种ajax请求?
我以前没有使用过ritz-nrepl,而nrepl花了大约10秒的时间,这很长但是仍然可以忍受,因为我不经常重启它.
当我尝试使用ritz-repl时,启动需要将近30秒,耗费大约1.3G内存.这让我不愿意使用它.
我甚至投入了SSD希望它可以提高速度,因为我听到有人提到他"几乎没有注意到使用ubuntu + ssd的lein repl启动时间".但我无法区分ssd和hdd之间的区别.我不知道我做错了什么或者它只是一个神话.
人们说避免使用map顺序执行副作用,这是有道理的.
但在现实世界中,我发现自己需要保留结果并map急切地评估,即插入数据库并返回记录时.
这是(doall (map ..))我唯一的选择吗?有没有比较惯用的方法呢?
假设我有一个原子初始设置为0.我想初始化它,只有它以前没有初始化,
我现在拥有的:
(swap! atom #(if % % (initialize)))
Run Code Online (Sandbox Code Playgroud)
但是,这对我来说并不像是惯用语.
必须有更可读的方式吗?
我希望有类似的东西
(for [x [1 2 3]
y [4 5 6]]
(+ x y))
=>(5 7 9)
Run Code Online (Sandbox Code Playgroud)
代替
=>(5 6 7 6 7 8 7 8 9)
Run Code Online (Sandbox Code Playgroud)
我想我可以通过解构来做到这一点但不确定如何.我试过了
(for [[x y] [[1 2 3] [4 5 6]] (+ x y))
Run Code Online (Sandbox Code Playgroud)
给出(3 9).
有什么建议?