小编kme*_*ein的帖子

键入类数据类型

阅读文章Scrap你的类型类后,我重新实现了一些显示的想法.虽然这样做我遇到了一些非常奇怪的东西:Type Class - Type可以用作类型约束!我的问题:为什么?

我的代码:

{-# LANGUAGE Rank2Types #-}

data IFunctor f = IFunctor { 
    _fmap :: forall a b. (a -> b) -> f a -> f b 
}

-- this type checks...
_fmap2 :: IFunctor f => (a -> b) -> f (f a) ->  f (f b)
_fmap2 = \inst -> _fmap inst . _fmap inst
Run Code Online (Sandbox Code Playgroud)

在GHCi中,会发生以下情况:

>>> :t _fmap2 :: IFunctor f => (a -> b) -> f (f a) -> f (f b) …
Run Code Online (Sandbox Code Playgroud)

haskell types typeclass

6
推荐指数
1
解决办法
151
查看次数

Haskell集合理解

是否有可能(例如语言扩展)对Data.Set集合使用列表推导语法的语法?

例:

f :: Set a -> Set b -> Set (a,b)
f xs ys = [(x,y) | x <- xs , y <- ys] -- this is the set comprehension
Run Code Online (Sandbox Code Playgroud)

由于集合是激发列表理解的数学结构,因此不具备在集合中使用它们的任何可能性会有点奇怪.

是的,我知道MonadComprehensions将list-comp语法与任何Monad/ MonadPlus类型一起使用,但由于Ord大多数函数的约束,AFAIK集甚至不能成为monad .

haskell list-comprehension list set

6
推荐指数
1
解决办法
2052
查看次数

标签 统计

haskell ×2

list ×1

list-comprehension ×1

set ×1

typeclass ×1

types ×1