什么是交错的两个向量最简单的方法n+1 和n成员?
(def a [:a :c :e])
(def b [:b :d])
(interleave a b ); truncates to shortest list
[:a :b :c :d]
;what I would like.
(interleave-until-nil a b)
[:a :b :c :d :e]
Run Code Online (Sandbox Code Playgroud) 如何将矢量从较大的值排序到较小的值,因为这不起作用
(sort > ([3 1 2 4]))
Run Code Online (Sandbox Code Playgroud)
但是,使用>地图值它是有效的.
(sort > (vals {:foo 5, :bar 2, :baz 10}))
; => (10 5 2)
Run Code Online (Sandbox Code Playgroud) 我知道edn/read-string
在Haskell中,我倾向于使用Parsec https://hackage.haskell.org/package/parsec
我需要解析像编程语言一样的Algo/Pascal.在Clojure中使用什么建议的库进行解析?
编辑:4.如果有一种方法可以通过core.logic方式执行此操作,其中"优先级"conde将指定选项(以及解决歧义的顺序).
我想从clojure中的vector中删除连续重复的值
input?[1 1 1 2 2 1 1 3 3]
output?[1 2 1 3]
Run Code Online (Sandbox Code Playgroud)
怎么实现呢?
我对像这样的元素有一个序列
([:Jon 326] [:Mary 233] [:Matthew 255])
并希望以一种巧妙的方式将此序列转换为类似
{{:name Jon :rank 1} {:name Matthew :rank 2} {:name Mary :rank 3}}
:name应该是字符串类型,而:rank应该是整数
排名是由数字计算得出的,与序列中元素中的其他元素相比,“点”越高,排名越高
请评论如何重组以下函数,使其更具可读性和更少的括号。
(defn forwardDifference2nd [fn x h]
(->
(/ (+ (-
(fn (+ (+ x h) h))
(* (fn (+ x h)) 2.0))
(fn x))
(Math/pow h 2))))
Run Code Online (Sandbox Code Playgroud)
源代码
(def x 1.0)
(def h 0.1)
(defn forwardDifference2nd [fn x h]
(->
(/ (+ (-
(fn (+ (+ x h) h))
(* (fn (+ x h)) 2.0))
(fn x))
(Math/pow h 2))))
(defn myPolynomial [x]
(->
(+ (* 2
(Math/pow x 3))
(* 4
(Math/pow x 2)))
(- (* 5 x))))
(forwardDifference2nd …Run Code Online (Sandbox Code Playgroud) 真诚地,我读了很多次关于这个命令的内容,但我不明白真正的目标是什么。我正在阅读基座文档,我看到了很多这个命令->,并且我在 nubank 的 github公共->>存储库中读到了诸如^:private、s/def和s/defn:-
我有两个可变参数函数。其中一个将其参数传递给另一个。问题是可变参数在第二次调用时变成了一个列表。我如何保持它们的可变参数?
=> (defn foo [x & ys] (println x ys))
=> (defn bar [x & ys] (foo (clojure.string/upper-case x) ys))
=> (foo "hi")
hi nil
=> (bar "hi")
HI (nil)
Run Code Online (Sandbox Code Playgroud)
在实际函数中,foo 将其 args 传递给可变参数 java 函数,因此 varargs 确实需要保留 varargs。我该怎么做呢?
我有一个if else条件,我想在clojure中实现...但坚持不知道怎么做多个if
我的代码就像
{
if(x=a)
{
you return sol1
} else
{
sol 3
}
and if(x=b)
{
return sol2
}
else
{
sol 3-same as first cond
}
}
Run Code Online (Sandbox Code Playgroud)
这是查找3中最大整数的一些示例.如何在clojure中执行此操作?
我有一个地图矢量,如下所示,尽管每个数据集中可能有100个地图:
data({ a:a b:"2" c:t}{ a:b b:"0" c:t}{ a:c b:"-4" c:t}{ a:d b:"100" c:t}{ a:e b:"50" c:t})
Run Code Online (Sandbox Code Playgroud)
我需要产生以下总和:b
values(map :b data)
sum(reduce + (map read-string values)
Run Code Online (Sandbox Code Playgroud)
这给出了期望的结果,但计算时间长,约为每秒1/10.我正在为数十万个数据集执行此操作,因此需要花费大量处理时间来执行此操作.
任何人都可以建议一种更有效/更快的方法吗?
谢谢