小编cla*_*laj的帖子

在clojure中生成并保存.png图像

如何生成一个简单的BufferedImage并将其保存为Clojure中的png文件?

image-manipulation clojure

4
推荐指数
1
解决办法
2241
查看次数

更优雅的方法来处理core.async中的错误和超时?

当然,我想用core.async将各种请求包装到外部服务,同时仍然通过一些操作返回这些操作的结果chan.

我想要处理抛出的异常和超时(即操作需要比预期更长的时间才能返回,或者能够在相同任务的各种服务中进行选择,但具有不同的方法或服务质量.

显示能够处理错误,超时和正确返回结果的示例的最小可行示例似乎是:

(require '[clojure.core.async :refer [chan go timeout <! >! alt!]])

(def logchan (chan 1))

(go (loop []
      (when-let [v (<! logchan)]
        (println v)
        (recur))))

(dotimes [_ 10] 
  (go 
    (let [result-chan  (chan 1)
          error-chan   (chan 1)
          timeout-chan (timeout 100)]
      (go
        (try 
          (do (<! (timeout (rand-int 200)))
              (>! result-chan (/ 1 (rand-int 2))))
          (catch Exception e (>! error-chan :error))))
      (>! logchan (alt! [result-chan error-chan timeout-chan] 
                    ([v] (if v v :timeout)))))))
Run Code Online (Sandbox Code Playgroud)

这段代码打印出像

1
:error
1
:error
:error
:timeout
:error …
Run Code Online (Sandbox Code Playgroud)

clojure core.async

4
推荐指数
1
解决办法
1070
查看次数

使用Plumatic Sc​​hema强制bigdec

我有类型的传入数据{:loan/amount 1200}.

是否有可能使用plumatic Schema强制执行此操作,即将{:loan/amount 1200M}数字(甚至是数字串)强制转换为大数字?

我不知道如何定义新的数据类型(如s/Bigdec),然后确保它用于clojure.core/bigdec强制某个值为a java.math.BigDecimal.

clojure coercion plumatic-schema

3
推荐指数
1
解决办法
385
查看次数

从regexp中获取参数

我希望它以某种方式返回450,$ 1只是一个愚蠢的变量名称.这就像格式的反面.实现这一目标的clojure正则表达式魔法是什么?

(re-something #"$1\sUSD" "450 USD")
Run Code Online (Sandbox Code Playgroud)

regex clojure

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