小编Chr*_*son的帖子

如何检测类型是否是另一种通用类型

例:

public static void DoSomething<K,V>(IDictionary<K,V> items) {
   items.Keys.Each(key => {
      if (items[key] **is IEnumerable<?>**) { /* do something */ }
      else { /* do something else */ }
}
Run Code Online (Sandbox Code Playgroud)

这可以不使用反射吗?我怎么说C#中的IEnumerable?我应该只使用IEnumerable,因为IEnumerable <>实现IEnumerable?

c#

25
推荐指数
3
解决办法
9419
查看次数

如何在Compojure/Hiccup中输出HTML注释?

我希望我的程序输出以下HTML:

<!--[if lt IE 8]><link rel="stylesheet" href="../blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
Run Code Online (Sandbox Code Playgroud)

有没有办法用Hiccup输出html评论文字?

clojure compojure hiccup

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

是否可以在clojure中记录记录中的字段?

例如:

(defrecord Contract [^{:doc "primary identifiers..."} contract-id])
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用:

(doc Contract)

clojure.lang.Cons cannot be cast to clojure.lang.Symbol
[Thrown class java.lang.ClassCastException]
Run Code Online (Sandbox Code Playgroud)

也许你不能记录记录字段?

clojure

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

在宏中创建名称空间限定的函数名称

我有一堆函数可以映射到外部系统定义的某些代码:

(defn translate-from-ib-size-tick-field-code [val]
  (condp = val
    0 :bid-size
    3 :ask-size
    5 :last-size
    8 :volume))

(defn translate-to-ib-size-tick-field-code [val]
  (condp = val
    :bid-size 0
    :ask-size 3
    :last-size 5
    :volume 8))
Run Code Online (Sandbox Code Playgroud)

我想制作一个宏来删除重复:

#_ (translation-table size-tick-field-code
                      {:bid-size 0
                       :ask-size 3
                       :last-size 5
                       :volume 8})    
Run Code Online (Sandbox Code Playgroud)

我开始像这样的宏:

(defmacro translation-table [name & vals]
  `(defn ~(symbol (str "translate-to-ib-" name)) [val#]
     (get ~@vals val#)))
Run Code Online (Sandbox Code Playgroud)

结果函数体似乎正确,但函数名称错误:

re-actor.conversions> (macroexpand `(translation-table monkey {:a 1 :b 2}))
(def translate-to-ib-re-actor.conversions/monkey 
     (.withMeta (clojure.core/fn translate-to-ib-re-actor.conversions/monkey      
     ([val__10589__auto__] 
        (clojure.core/get {:a 1, :b 2} val__10589__auto__))) (.meta ...
Run Code Online (Sandbox Code Playgroud)

事实证明,我希望"translate-to-ib-"作为函数名称的一部分出现,而不是名称空间的前缀. …

clojure

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

如何在Visual Studio 2010中更改F#交互式shell的颜色

喜欢如何更改F#交互式shell的颜色,但这次是Visual Studio 2010(RTM).

我尝试更改"只读区域"背景颜色,重新启动visual studio,背景颜色不是我选择的颜色.

f# visual-studio-2010 f#-interactive

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