小编Jer*_*eld的帖子

(常数x)与(fn [&_] x)有何不同?

我正在使用多方法提供不同的功能,具体取决于我的项目运行的"模式"(它是一个yada api服务器,应该能够运行:dev,:prod模式等).

我正在使用mount/defstate提供关键字:

(defstate mode :start :dev)
Run Code Online (Sandbox Code Playgroud)

当我发送使用时(constantly mode),我得到错误但是当我使用(fn [& _] mode)它发送时似乎工作.

这两种形式不一样吗?或者评估它们的方式(或时间)是否存在细微差别?

clojure expression-evaluation

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

如何在规范中为两个不同的路径生成相同的值?

我想学习如何使用overridess/gen.

我有一张::parent包含::child地图的地图.父母和孩子都有共同的钥匙.该要求是,按键则有父母和孩子之间,例如相同的值{:a 1 :b 2 :child {:a 1 :b 2}.我知道这似乎是多余的,但问题领域需要它.

下面的代码生成示例,但不满足上述要求.

有没有办法在两个位置使用相同的生成值?

(ns blah
  (:require [clojure.spec.alpha :as s]
            [clojure.spec.gen.alpha :as gen])) 

(s/def ::a (s/int-in 1 5))
(s/def ::b (s/int-in 1 6))

(s/def ::child
  (s/keys :req-un [::a ::b]))

(defn- parent-gen []
  (let [a #(s/gen ::a)
        b #(s/gen ::b)]
    (s/gen ::parent-nogen
           ; overrides map follows
           {::a a ::b b
            ::child #(s/gen ::child
                            ; another overrides map
                            {::a a …
Run Code Online (Sandbox Code Playgroud)

clojure clojure.spec

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