我已经尝试了一段时间来解决这个nREPL ticket,但我没有主意,所以我决定在这里寻求帮助。
基本上,只有在存在*print-namespace-maps*
的情况下,才需要绑定;; compilation error
(when (resolve '*print-namespace-maps*)
(set! *print-namespace-maps* (@bindings #'*print-namespace-maps*)))
;; shadows `clojure.core/*print-namespace-maps*` on 1.9, as the def gets executed always
(when-not (resolve 'clojure.core/*print-namespace-maps*)
(def ^:dynamic *print-namespace-maps*
"Define the var for clojure versions below 1.9"
nil))
,或者找到某种方式定义不存在的内容,而不会破坏Clojure 1.9+。
有些不起作用的东西:
ul {
width: 200px;
margin: 0;
padding: 0;
list-style: none;
display: flex;
justify-content: center;
flex-wrap: wrap;
}
ul li {
display: inline;
margin-left:-1em;
margin-right:1em;
z-index:1;
}
/* hide stray bullet with ul::before */
ul::before {
content: " ";
display: block;
width: 1em;
height: 3em;
background: white;
z-index: 2;
position: absolute;
left: 0;
}
ul li + li::before {
content: "•";
display: inline;
margin: 0 10px;
}
似乎动态var根本无法有条件地绑定,这确实很糟糕,但是我想必须有某种方法可以完成我们想要的目标。
查看链接的问题以获取更多详细信息。任何帮助将不胜感激!
答案 0 :(得分:2)
我不完全了解链接问题或nREPL隐含的详细信息,但是@model ProductsListViewModel
@foreach (var p in Model.Products) {
@Html.Partial("ProductSummary", p)
}
<div page-model="@Model.PagingInfo" page-action="List" page-classes-enabled="true"
page-class="btn" page-class-normal="btn-secondary"
page-class-selected="btn-primary" class="btn-group pull-right m-1">
</div>
的行为在这里有点令人惊讶:
def
我希望在评估之后没有Clojure 1.8.0
user=> (when false (def ^:dynamic *foo* 1))
nil
变体,但是它将创建一个未绑定的变体:
*foo*
我想在您的示例中,user=> (var-get #'*foo*)
#object[clojure.lang.Var$Unbound 0x20da8800 "Unbound: #'user/*foo*"]
的编译器行为是导致1.9中出现异常的原因:
def
也许可以使用一个宏,以便在宏扩展过程中进行WARNING: *print-namespace-maps* already refers to: #'clojure.core/*print-namespace-maps* in namespace: user, being replaced by: #'user/*print-namespace-maps*
检查,并且在解析时不会发出resolve
:
def
它似乎在Clojure 1.8上有效:
(defmacro def-dynamic-when-not-resolve [sym value]
(when-not (resolve sym)
`(def ~(vary-meta sym assoc :dynamic true) ~value)))
在Clojure 1.9上:
Clojure 1.8.0
user=> (def-dynamic-when-not-resolve *print-namespace-maps* 'sure)
#'user/*print-namespace-maps*
user=> *print-namespace-maps*
sure