小编Ant*_*ald的帖子

在鱼壳中管,stdout和stderr

我知道这已经有一段时间了,我发现了很多关于它的讨论,但是我没有得到最终的方法来完成它:管道,stdout和stderr.在bash中,这将是简单的:

cmd 2>&1 | cmd2
Run Code Online (Sandbox Code Playgroud)

fish

36
推荐指数
2
解决办法
1万
查看次数

Clojure <> ClojureScript; 例如:"格式"功能

在Clojure中有一个非常方便的函数,它被称为format.众所周知,它能够轻松模拟字符串.该功能通常在大多数编程语言中可用.

我发现ClojureScript没有实现这个功能,我有点恼火.据我所知,它是在旧版本中实现的,但最新版本不包含该功能.

谁知道这是否有原因?

clojure clojurescript

18
推荐指数
2
解决办法
5877
查看次数

迭代从_.groupBy检索的对象

使用下划线函数groupBy,可以按其元素的某个属性对数组进行分组.结果是一个对象,其键值对如下:group>对应的数组片段.

var words = ['Hey', 'Hii', 'Salut'],
    grouped = _.groupBy(words, 'length');
Run Code Online (Sandbox Code Playgroud)

分组看起来像这样:

{
  '3': ['Hey', 'Hii'],
  '5': ['Salut']
}
Run Code Online (Sandbox Code Playgroud)

这将是一种简单而安全的迭代方法,例如从最高长度开始,然后是下一个最低长度.这有效:

_.each( _.toArray(grouped).reverse(), function(v) {
  console.log(v);
} );
Run Code Online (Sandbox Code Playgroud)

但我认为这并不完全正确,因为对象是无序列表,而正确的顺序恰好在这里发生.对此有何评论?

javascript underscore.js

16
推荐指数
2
解决办法
5145
查看次数

如果key存在:update,否则:assoc

在reduce循环中考虑这个:

(if (contains? m k)
  (update m k conj v)
  (assoc m k [v]))
Run Code Online (Sandbox Code Playgroud)

有没有办法摆脱if语句?

clojure clojurescript

12
推荐指数
1
解决办法
971
查看次数

翻转传递参数的顺序

是否有惯用/内置方式来翻转传递给Clojure中函数的参数顺序?

正如我在这里用辅助函数的定义:

(defn flip [f & xs]
   (apply f (reverse xs)))


(vector 1 2)       ; [1 2]
(flip vector 1 2)  ; [2 1]
Run Code Online (Sandbox Code Playgroud)

functional-programming clojure

8
推荐指数
2
解决办法
2805
查看次数

带有 core.async 的节流功能

应该限制​​函数可能执行的次数。所以在调用一个函数之后,在一段时间内任何重复的调用都应该被忽略。如果在此期间有 where 调用,则应在时间段之后执行最后一个。

这是我使用 core.async 的方法。这里的问题是,额外的调用正在通道 c 中汇总。我需要一个内部只有一个位置的通道,它将被 put 覆盖!每次。

(defn throttle [f time]
  (let [c (chan 1)]
    (go-loop []
      (apply f (<! c))
      (<! (timeout time))
      (recur))
    (fn [& args]
      (put! c (if args args [])))))
Run Code Online (Sandbox Code Playgroud)

用法:

(def throttled (throttle #(print %) 4000))
(doseq [x (range 10)]
   (throttled x))

; 0
;... after 4 seconds
; 9
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

解决方案

(defn throttle [f time]
  (let [c (chan (sliding-buffer 1))]
    (go-loop []
      (apply f (<! c))
      (<! (timeout time))
      (recur))
    (fn …
Run Code Online (Sandbox Code Playgroud)

clojure clojurescript core.async

6
推荐指数
1
解决办法
1346
查看次数

使用doseq/for无限序列

在Clojure中,可以通过函数的帮助迭代序列,for或类似地使用doseq副作用并将nil作为返回值:

(doseq [x (range 3)]
    (prn x))

; 0
; 1
; 2
Run Code Online (Sandbox Code Playgroud)

对于序列无限的情况,有一种方法可以引入中断条件:

(doseq [x (range) :while (< x 3)]
    (prn x))
Run Code Online (Sandbox Code Playgroud)

这将产生与上面相同的输出.

作为专业,当您使用多个序列时,会有一个非常有趣的行为.正如文档所称:"集合以嵌套方式迭代,最快速".

(doseq [x (range 3) y (range 3)]
    (prn x y))

; 0 0
; 0 1
; 0 2
; 1 0
; 1 1
; 1 2
; 2 0
; 2 1
; 2 2
Run Code Online (Sandbox Code Playgroud)

但是,如果序列再次无限,会发生什么.当最后一个是无限的时,它运作得很好.这将像以前的例子一样工作:

(doseq [x (range 3) y (range) :while (< y 3)]
    (prn x y)) …
Run Code Online (Sandbox Code Playgroud)

clojure clojurescript

6
推荐指数
1
解决办法
146
查看次数

浏览器在尝试创建渲染上下文时是否会抛出错误?

以下代码是否会抛出错误?

var canvas = document.createElement("canvas");

var ctx = canvas.getContext("somethingwrong");
Run Code Online (Sandbox Code Playgroud)

在铬中,它只返回null.

如果浏览器知道请求的渲染上下文怎么样?(比如"webgl"或"experimental-webgl")是否有可能出现错误异常?在铬中,我无法引发这种行为.

换句话说:我是否需要将此代码包装在库中的try/catch中,以便干净地检查渲染上下文?

有没有办法可以客观化这个?例如,通过Web服务尝试在不同浏览器中剪切的代码并列出它们可能不同的结果.

javascript browser canvas cross-browser

6
推荐指数
1
解决办法
127
查看次数

固定尺寸容器中的3个div:2个固定尺寸,1个应拉伸

假设我有一个固定的大小div,其中包含3个divs:

  • 第一个和最后一个也具有固定的大小,中间的一个应该填充剩余的空间

 #container {
   width: 100px;
   height: 100px;
 }
 #a,
 #c {
   height: 20px;
 }
 #b {
   height: 60px; // this should be a generic value...
 }
Run Code Online (Sandbox Code Playgroud)
<div id="container">
  <div id="a">A</div>
  <div id="b">B</div>
  <div id="c">C</div>
</div>
Run Code Online (Sandbox Code Playgroud)

如何让#bdiv自动拉伸.

这三个div的(#a,#b,#c)应填满整个height#container.

html css

6
推荐指数
1
解决办法
86
查看次数

ring:将 http 请求的正文读取为字符串

在环服务器内部处理 http 请求时,请求数据的主体存储在 key 中的 request-hashmap 中:body。例如如下:

#object[org.eclipse.jetty.server.HttpInputOverHTTP 0x2d88a9aa "HttpInputOverHTTP@2d88a9aa"] 
Run Code Online (Sandbox Code Playgroud)

如果我只对原始文本感兴趣,我如何读出这个对象?

clojure ring

6
推荐指数
1
解决办法
3530
查看次数