相关疑难解决方法(0)

Lambda用于Haskell中的类型表达式?

Haskell或特定编译器是否具有类型级lambda(如果这甚至是一个术语)?

详细说,我说有一个参数化类型,Foo a b并希望Foo _ b成为一个实例,比如Functor.是否有任何机制可以让我做类似的事情

instance Functor (\a -> Foo a b) where
...
Run Code Online (Sandbox Code Playgroud)

lambda haskell

25
推荐指数
4
解决办法
5406
查看次数

如果类型参数的顺序错误,是否可以使类型成为类的实例?

请考虑以下类型:

data SomeType m a = SomeType (m Integer) [a]
Run Code Online (Sandbox Code Playgroud)

我们可以使用以下代码轻松地将该类型作为Functor的实例:

instance Functor (SomeType m) where
  fmap f (SomeType m lst) = SomeType m (map f lst)
Run Code Online (Sandbox Code Playgroud)

但是,如果相反SomeType类型的参数被交换:

data SomeType2 a m = SomeType2 (m Integer) [a]
Run Code Online (Sandbox Code Playgroud)

然后上面的实例定义不起作用.

有没有办法制作SomeType2Functor的实例?如果没有,那么haskell/ghc是否有任何新增功能可以实现?

haskell

17
推荐指数
1
解决办法
468
查看次数

标签 统计

haskell ×2

lambda ×1