Questions tagged «clojure»

Clojure是Java虚拟机(带有CLR和JavaScript版本)的现代Lisp方言。Clojure不仅仅是Java中Lisp的实现,还提供了对Java类和生态系统的访问。

11
在Clojure中将函数映射到映射的值
我想使用相同的键但将一个函数应用于值将一个值映射转换为另一张映射。我认为clojure api中有执行此操作的功能,但我一直找不到它。 这是我正在寻找的示例实现 (defn map-function-on-map-vals [m f] (reduce (fn [altered-map [k v]] (assoc altered-map k (f v))) {} m)) (println (map-function-on-map-vals {:a "test" :b "testing"} #(.toUpperCase %))) {:b TESTING, :a TEST} 有人知道是否map-function-on-map-vals已经存在吗?我认为确实如此(可能也有一个更好的名字)。


7
Clojure Core或Contrib中的Zip函数是否等效?
在Clojure中,我想合并两个列表以给出成对列表, > (zip '(1 2 3) '(4 5 6)) ((1 4) (2 5) (3 6)) 在Haskell或Ruby中,该函数称为zip。实现它并不困难,但是我想确保我不会错过Core或Contrib中的一个函数。 Core中有一个zip名称空间,但是它被描述为提供对Zipper功能技术的访问,这似乎不是我想要的。 在Core中,是否有等效功能可以通过这种方式组合2个或更多列表? 如果没有,是否是因为存在一种惯用方法导致不需要此功能?
130 clojure 

6
为什么Clojure除了“符号”外还有“关键字”?
从过去开始,我就对其他Lisps(尤其是Scheme)有所了解。最近,我一直在阅读有关Clojure的文章。我看到它既有“符号”又有“关键字”。我熟悉的符号,但不包含关键字。 其他Lisps是否有关键字?除了具有不同的符号(即冒号)以外,关键字与符号有何不同?
130 lisp  clojure  scheme  keyword 



9
Clojure:减少与应用
我了解reduce和之间的概念差异apply: (reduce + (list 1 2 3 4 5)) ; translates to: (+ (+ (+ (+ 1 2) 3) 4) 5) (apply + (list 1 2 3 4 5)) ; translates to: (+ 1 2 3 4 5) 但是,哪个是惯用的Clojure?一种或另一种方式有什么不同吗?从我的(有限的)性能测试来看,它似乎reduce要快一些。
126 clojure 



11
leiningen-如何为本地jar添加依赖项?
我想使用Leiningen来构建和开发Clojure项目。有没有办法修改project.clj告诉它从本地目录中选择一些jar? 我有一些无法上传到公共存储库的专有jar。 此外,leiningen可以用于为clojure项目维护“ lib”目录吗?如果我的一堆clojure项目共享相同的jar,我不想为每个jar保留一个单独的副本。 谢谢
117 java  build  clojure  maven  leiningen 

5
一个正则表达式,用于匹配没有其他子字符串的子字符串
我需要一个匹配blahfooblah但不匹配的正则表达式blahfoobarblah 我希望它只匹配foo和foo周围的所有内容,只要不跟在bar后面即可。 我尝试使用此方法:foo.*(?<!bar)这是相当接近的,但它匹配blahfoobarblah。负面的眼光需要匹配任何东西,而不仅仅是障碍。 我使用的特定语言是Clojure,它在后台使用Java正则表达式。 编辑:更具体地说,我也需要它通过blahfooblahfoobarblah但不是blahfoobarblahblah。
115 java  regex  clojure 


5
复合路线背后的“大创意”是什么?
我是Clojure的新手,并且一直在使用Compojure编写基本的Web应用程序。不过,我正在用Compojure的defroutes语法碰壁,我想我需要同时理解所有背后的“如何”和“为什么”。 环形应用程序似乎以HTTP请求映射开始,然后只是通过一系列中间件功能传递请求,直到将其转换为响应映射,然后再发送回浏览器。这种样式对于开发人员来说似乎太“低级”了,因此需要像Compojure这样的工具。我可以看到在其他软件生态系统中也需要更多抽象,尤其是使用Python的WSGI。 问题是我不理解Compojure的方法。让我们采用以下defroutesS表达式: (defroutes main-routes (GET "/" [] (workbench)) (POST "/save" {form-params :form-params} (str form-params)) (GET "/test" [& more] (str "<pre>" more "</pre>")) (GET ["/:filename" :filename #".*"] [filename] (response/file-response filename {:root "./static"})) (ANY "*" [] "<h1>Page not found.</h1>")) 我知道理解所有这些的关键在于一些宏伏都教,但是我还没有完全理解宏。我已经盯着defroutes源头很长时间了,但是只是不明白!这里发生了什么?了解“大创意”可能会帮助我回答以下特定问题: 如何从路由功能(例如workbench功能)中访问Ring环境?例如,假设我要访问HTTP_ACCEPT标头或请求/中间件的其他部分? 解构({form-params :form-params})有什么处理?解构时可以使用哪些关键字? 我真的很喜欢Clojure,但是我很沮丧!
109 clojure  compojure 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.