我試圖以歸納方式定義一對類實例。即:Haskell「不」類型約束
class Foo a b | a -> b where
foo :: a -> b
instance (not?)Foo a => Bar a b
foo x = ...
instance Foo a => Bar a b
foo x = ...
第一個實例確定基本動作,秒遞歸調用foo。有沒有辦法做到這一點?一個很好的例子是扁平化一個列表,第一個例子是身份函數,第二個例子是concat的遞歸應用程序。
請注意,在Haskell中,不可能確定給定類型是* not *給定類型類的實例,因爲其他人可以使用他們自己的代碼編譯您的代碼來提供實例。 – 2012-03-04 01:41:17