clojure

Clojure get nested map value

試著忘記壹切 提交于 2020-04-28 04:16:05
问题 So I'm used to having a nested array or map of settings in my applications. I tried setting one up in Clojure like this: (def gridSettings {:width 50 :height 50 :ground {:variations 25} :water {:variations 25} }) And I wondered if you know of a good way of retrieving a nested value? I tried writing (:variations (:ground gridSettings)) Which works, but it's backwords and rather cumbersome, especially if I add a few levels. 回答1: That's what get-in does: (get-in gridSettings [:ground :variations

2020年编程语言排行榜!

假如想象 提交于 2020-04-18 23:35:01
小伙伴们,大家好,今天给大家分享的是全球最受欢迎的编程语言,到2020年4月18日。看看你用的语言上榜了吗? 最受欢迎的前20名 其他编程语言 未来可能受欢迎的语言(排名不分先后,使用字母排序) (Visual) FoxPro, ABC, ActionScript, Alice, Arc, ATLAS, Awk, bc, Bourne shell, C shell, CL (OS/400), Clojure, Common Lisp, Crystal, cT, Elixir, Forth, Hack, Icon, Inform, Io, J, Korn shell, Ladder Logic, LiveCode, Maple, Mercury, MQL4, NATURAL, Object Pascal, OCaml, OpenCL, OpenEdge ABL, Oz, PL/I, PostScript, Programming Without Coding Technology, Pure Data, Q, Red, Ring, S, Smalltalk, Solidity, SPARK, Tcl, Vala/Genie, Verilog, VHDL, Whitespace 长期以来受欢迎的编程语言 编程语言名人堂 ps.由权威机构 TIOBE 发布。 今天的推荐不知道大家喜欢吗

2020年编程语言排行榜!

浪尽此生 提交于 2020-04-18 14:38:47
2020年编程语言排行榜! 小伙伴们,大家好,今天给大家分享的是全球最受欢迎的编程语言,到2020年4月18日。看看你用的语言上榜了吗? 最受欢迎的前20名 其他编程语言 未来可能受欢迎的语言(排名不分先后,使用字母排序) (Visual) FoxPro, ABC, ActionScript, Alice, Arc, ATLAS, Awk, bc, Bourne shell, C shell, CL (OS/400), Clojure, Common Lisp, Crystal, cT, Elixir, Forth, Hack, Icon, Inform, Io, J, Korn shell, Ladder Logic, LiveCode, Maple, Mercury, MQL4, NATURAL, Object Pascal, OCaml, OpenCL, OpenEdge ABL, Oz, PL/I, PostScript, Programming Without Coding Technology, Pure Data, Q, Red, Ring, S, Smalltalk, Solidity, SPARK, Tcl, Vala/Genie, Verilog, VHDL, Whitespace 长期以来受欢迎的编程语言 编程语言名人堂 ps.由权威机构 TIOBE 发布。

2020年编程语言排行榜!

老子叫甜甜 提交于 2020-04-18 14:38:23
小伙伴们,大家好,今天给大家分享的是全球最受欢迎的编程语言,到2020年4月18日。看看你用的语言上榜了吗? 最受欢迎的前20名 其他编程语言 未来可能受欢迎的语言(排名不分先后,使用字母排序) (Visual) FoxPro, ABC, ActionScript, Alice, Arc, ATLAS, Awk, bc, Bourne shell, C shell, CL (OS/400), Clojure, Common Lisp, Crystal, cT, Elixir, Forth, Hack, Icon, Inform, Io, J, Korn shell, Ladder Logic, LiveCode, Maple, Mercury, MQL4, NATURAL, Object Pascal, OCaml, OpenCL, OpenEdge ABL, Oz, PL/I, PostScript, Programming Without Coding Technology, Pure Data, Q, Red, Ring, S, Smalltalk, Solidity, SPARK, Tcl, Vala/Genie, Verilog, VHDL, Whitespace 长期以来受欢迎的编程语言 编程语言名人堂 ps.由权威机构 TIOBE 发布。 今天的推荐不知道大家喜欢吗

Go语言的GPM调度器是什么?

北战南征 提交于 2020-04-18 13:02:06
😋我是平也,这有一个专注Gopher技术成长的开源项目 「go home」 导读 相信很多人都听说过Go语言天然支持高并发,原因是内部有协程(goroutine)加持,可以在一个进程中启动成千上万个协程。那么,它凭什么做到如此高的并发呢?那就需要先了解什么是并发模型。 并发模型 著名的C++专家Herb Sutter曾经说过“免费的午餐已经终结”。为了让代码运行的更快,单纯依靠更快的硬件已经无法得到满足,我们需要利用多核来挖掘并行的价值,而并发模型的目的就是来告诉你不同执行实体之间是如何协作的。 当然,不同的并发模型的协作方式也不尽相同,常见的并发模型有七种: 线程与锁 函数式编程 Clojure之道 actor 通讯顺序进程(CSP) 数据级并行 Lambda架构 而今天,我们只讲与Go语言相关的并发模型CSP,感兴趣的同学可以自行查阅书籍《七周七并发模型》。 CSP篇 CSP,全称Communicating Sequential Processes,意为通讯顺序进程,它是七大并发模型中的一种,它的核心观念是将两个并发执行的实体通过通道channel连接起来,所有的消息都通过channel传输。其实CSP概念早在1978年就被 东尼·霍尔 提出,由于近来Go语言的兴起,CSP又火了起来。 那么CSP与Go语言有什么关系呢?接下来我们来看Go语言对CSP并发模型的实现—

Go语言的GPM调度器是什么?

喜你入骨 提交于 2020-04-18 12:05:42
😋我是平也,这有一个专注Gopher技术成长的开源项目 「go home」 导读 相信很多人都听说过Go语言天然支持高并发,原因是内部有协程(goroutine)加持,可以在一个进程中启动成千上万个协程。那么,它凭什么做到如此高的并发呢?那就需要先了解什么是并发模型。 并发模型 著名的C++专家Herb Sutter曾经说过“免费的午餐已经终结”。为了让代码运行的更快,单纯依靠更快的硬件已经无法得到满足,我们需要利用多核来挖掘并行的价值,而并发模型的目的就是来告诉你不同执行实体之间是如何协作的。 当然,不同的并发模型的协作方式也不尽相同,常见的并发模型有七种: 线程与锁 函数式编程 Clojure之道 actor 通讯顺序进程(CSP) 数据级并行 Lambda架构 而今天,我们只讲与Go语言相关的并发模型CSP,感兴趣的同学可以自行查阅书籍《七周七并发模型》。 CSP篇 CSP,全称Communicating Sequential Processes,意为通讯顺序进程,它是七大并发模型中的一种,它的核心观念是将两个并发执行的实体通过通道channel连接起来,所有的消息都通过channel传输。其实CSP概念早在1978年就被 东尼·霍尔 提出,由于近来Go语言的兴起,CSP又火了起来。 那么CSP与Go语言有什么关系呢?接下来我们来看Go语言对CSP并发模型的实现—

Algebraic Data Type 及其在 Haskell 和 Scala 中的表现

大兔子大兔子 提交于 2020-04-13 19:53:33
【今日推荐】:为什么一到面试就懵逼!>>> http://songkun.me/2018/07/12/2018-07-12-adt-in-haskell-and-scala/ 函数式编程接触久了以后,我们会发现很多 FP 语言(这里指静态 FP 语言)具有不少类似的语言特性,这非常自然,因为语言特性就那么多,好用、实用的特性更少,这一方面造成了语言之间的同质化,另一方面也减轻了我们语言切换的成本,算是有利也有弊吧。 常见的静态函数式语言有 Haskell、Standard ML、OCaml、Scala 等,它们之间非常类似,共有的特性有: first-class function(匿名函数、高阶函数、闭包、柯里化、部分应用函数…) algebraic data type 模式匹配 类型推断 各个语言也有自己相对独特的特性,比如 Haskell 的 typeclass,Standard ML 和 OCaml 的模块,Scala 的私货就更多了,为了兼容 OO 和 FP 做了很多设计上的妥协,也引入了很多概念。 函数式编程语言也有动态、静态之分,上面列举的都是静态语言,动态语言则以 Lisp 为代表,包括:Scheme、Racket、Clojure、Erlang、Elixir 等,由于动态类型的限制,它们没有 algebraic data type、类型推断等类型系统相关的特性。

Exception running clojure-1.9.0.jar: missing clojure/spec/alpha__init.class and clojure/spec/alpha.clj

前提是你 提交于 2020-04-13 07:23:29
问题 Leiningen downloaded clojure-1.9.0.jar as a dependency. It's located at ~/.m2/repository/org/clojure/clojure/1.9.0 . It works fine through a lein repl. However, if (from ~/.m2/repository/org/clojure/clojure I run java -jar 1.9.0/clojure-1.9.0.jar , instead of the expected behaviour (initiation of a REPL) I get an exception: Could not locate clojure/spec/alpha__init.class or clojure/spec/alpha.clj on classpath. For other Clojure versions (1.8.0, 1.6.0, 1.4.0) I get a REPL as expected. So what

Clojure: Convert hash-maps key strings to keywords?

旧街凉风 提交于 2020-04-08 08:36:43
问题 I'm pulling data from Redis using Aleph: (apply hash-map @(@r [:hgetall (key-medication id)])) The problem is this data comes back with strings for keys, for ex: ({"name" "Tylenol", "how" "instructions"}) When I need it to be: ({:name "Tylenol", :how "instructions}) I was previously creating a new map via: { :name (m "name"), :how (m "how")} But this is inefficient for a large amount of keys. If there a function that does this? Or do I have to loop through each? 回答1: There is a handy function

Clojure: Convert hash-maps key strings to keywords?

荒凉一梦 提交于 2020-04-08 08:36:27
问题 I'm pulling data from Redis using Aleph: (apply hash-map @(@r [:hgetall (key-medication id)])) The problem is this data comes back with strings for keys, for ex: ({"name" "Tylenol", "how" "instructions"}) When I need it to be: ({:name "Tylenol", :how "instructions}) I was previously creating a new map via: { :name (m "name"), :how (m "how")} But this is inefficient for a large amount of keys. If there a function that does this? Or do I have to loop through each? 回答1: There is a handy function