Generics 如何在泛型函数中定义F#泛型函数参数? 让GetLogicalWithDoubleLevel元素DoubleLevel元素> (logicalModifier:InletPosition*OutletPosition->Logical) (逻辑:逻辑)=
我需要Generics 如何在泛型函数中定义F#泛型函数参数? 让GetLogicalWithDoubleLevel元素DoubleLevel元素> (logicalModifier:InletPosition*OutletPosition->Logical) (逻辑:逻辑)=,generics,f#,Generics,F#,我需要logicalModifier成为泛型函数,其类型参数与getLogicalWithDoubleLevelElement的类型参数相同 如何定义它?如果需要将显式多态函数作为参数传递,那么在F#中实现这一点的唯一方法是使用新类型和泛型方法: let getLogicalWithDoubleLevelElement<'E when 'E :> DoubleLevelElement> (logicalModifier : InletPosition * OutletP
logicalModifier
成为泛型函数,其类型参数与getLogicalWithDoubleLevelElement
的类型参数相同
如何定义它?如果需要将显式多态函数作为参数传递,那么在F#中实现这一点的唯一方法是使用新类型和泛型方法:
let getLogicalWithDoubleLevelElement<'E when 'E :> DoubleLevelElement>
(logicalModifier : InletPosition * OutletPosition -> Logical)
(logical : Logical) =
类型逻辑修改器=
抽象MakeLogical DoubleLevelElement>:InletPosition*OutletPosition->Logical
让GetLogicalWithDoubleLevel元素DoubleLevel元素>
(logicalModifier:logicalModifier)
(逻辑:逻辑)=。。。logicalModifier.MakeLogicalre-use'E
?应该很好,约翰回答了你的问题。我不确定是否存在更大的误解,因为您的函数名可能无法反映函数的签名。您希望GetLogicalWithDoubleLevel元素将逻辑作为其参数之一,还是希望它返回逻辑或两者都返回?它使用修饰符函数,而不是逻辑,超过修改的返回值Logical@JohnPalmer你能提供一段代码吗?我假设相关的签名是logicalModifier:'E->Logical
或类似的东西-你不太清楚你想要什么
type LogicalModifier =
abstract MakeLogical<'E when 'E :> DoubleLevelElement> : InletPosition * OutletPosition -> Logical
let getLogicalWithDoubleLevelElement<'E when 'E :> DoubleLevelElement>
(logicalModifier : LogicalModifier)
(logical : Logical) = ... logicalModifier.MakeLogical<'E> ...