【发布时间】:2012-05-22 06:08:31
【问题描述】:
上下文
假设我有协议 ICursor、IFoo、IBar,那么我可以有一个名为:
(defn IFoo->IBar [foo] ... )
现在,假设我有一个带有两个参数的函数
x: ICursor
y: IFoo
并输出一个 IBar 类型的对象。
现在,有什么标准方法可以在函数名中表示它吗?例如,以下都不起作用:
(defn ICursor,IFoo->IBar [x y] ...)
因为“,”被视为空格
(defn (ICursor, IFoo)->IBar [x y] ... )
因为 () 被视为函数应用程序。
(defn [ICursor, IFoo]->IBar [x y] ... )
因为 [] 被视为向量。
问题
是否有一种标准方法可以在函数名称中对协议类型的参数进行编码?
谢谢!
【问题讨论】:
-
*+!-_?是符号中的有效字符。你可以使用ICursor+IFoo->IBar。
标签: clojure