我想在列表中找到与谓词匹配的元素,并在没有元素与谓词匹配时获取默认值.我想这样做,而不定义额外的变量(一个班轮).是否有类似的东西getOrElse
的HashMap
?
我正在寻找类似doto
但不是返回的东西x
,我想返回最后一个调用值.
例如,而不是:
(.size (doto (java.util.ArrayList.)
(.add 2)
(.add 3)))
Run Code Online (Sandbox Code Playgroud)
我想写:
(mydoto (java.util.ArrayList.)
(.add 2)
(.add 3)
.size)
Run Code Online (Sandbox Code Playgroud)
实现这一结果的惯用方法是什么?
我想重复执行一个函数来解决它对集合的副作用.常见的方法是:
(defn my-func [x] (println x))
(doseq [x '(1 2 3) ]
(my-func x))
Run Code Online (Sandbox Code Playgroud)
但是x变量有点麻烦.我更喜欢以下代码:
((comp doall map) my-func '(1 2 3))
Run Code Online (Sandbox Code Playgroud)
你认为这是一个优雅的解决方案吗?
有没有办法!$
在 shell 内交互式编辑命令时扩展in 命令行?
例如,当我打字时ls !$
,我按下了某个按钮,然后我看到了 的值!$
。
在clojure中,我想在函数内创建一个记录.
我试过了:
(defn foo []
(defrecord MyRecord [a b])
(let [b (MyRecord. "1" "2")]))
Run Code Online (Sandbox Code Playgroud)
但它会导致异常:
java.lang.IllegalArgumentException: Unable to resolve classname: MyRecord
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我写了一篇文章ruby gem
,我希望有一个rake任务,用于将gem发布到我自己的GemInABox
存储库中:http://my-gem-repo.com
.
实现这一目标的最简单方法是什么?
另外,我想阻止默认发布到Rubygems.org
.
我在 WebAudio API ( http://webaudio.github.io/web-audio-api/ ) 中找不到重新启动AudioBufferSourceNode
. “循环”模式不合适,因为我需要在节点结束之前重新启动它。
我试图通过执行以下操作来实现它:
但是有几分之一秒没有声音,使过渡变得不平滑。
重新启动 的最佳方法是AudioBufferSourceNode
什么?
我对identical?
in 的行为感到非常惊讶clojure
.
(def a (map identity [:a :b]))
(identical? (rest a) (rest a)); false
知道为什么identical?
返回false?
在Clojure中,我有一个coll
2元素向量的集合.我想创建通过将得到的集合f
和g
在所述第一和第二元件的集合的每一个向量.我认为这与列表理解构造有关.
(def coll [[1 1000] [2 2000] [3 3000]])
Run Code Online (Sandbox Code Playgroud)
是否存在创建以下结果的惯用方法?
[[f(1) g(1000)] [f(2) g(2000)] [f(3) g(3000)]]
Run Code Online (Sandbox Code Playgroud) 让我们m
成为一个嵌套的地图.如何查找m
具有某个键的所有地图.
例如:
(def m {:a {:id 5}
:d {:id 58}
:x {:id 4 :c {:id 3 :d 4}}})
(recursive-filter m :id)
;; expected result:
> ({:id 5} {:id 58} {:id 4 :c {:id 3 :d 4}} {:id 3})
Run Code Online (Sandbox Code Playgroud) 如何反转其值为序列的地图?在反转映射中,键是所有序列的条目(假设没有重复的键)
例如:
(map-invert-tweaked {:monday [:banana :apple]
:sunday [:pineapple :mango]}); {:banana :monday
:apple :monday
:pineapple :sunday
:mango :sunday}
Run Code Online (Sandbox Code Playgroud)
我希望这个问题是明确的.