语境
假设我有协议 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] ... )
因为 [] 被视为向量。
问题
是否有一种标准方法可以在函数名称中对协议类型的参数进行编码?
谢谢!