typeclass

    6热度

    1回答

    循环,我现在有像下面这样的结构: class F a where f :: ... default f :: (G a...) => ... f = (some definition in terms of g) class F a => G a where g :: ... default g :: (C a...) => ...

    3热度

    1回答

    使用Bifunctor时,我们可以访问first和second“地图”功能。所以基本上这是一个Functor,允许我们以两种不同的方式fmap。 有没有像Monoid这样的东西?一些概念允许我们以两种不同的方式追加? 例如,假设一个不透明的Matrix类型。它不是列表或矢量矢量列表,我们不知道它是如何在内部构造的,但我们知道可以将行和列附加到它。 会有一些类型的类允许这样做吗? class X a

    0热度

    1回答

    具体而言,我试图用Applicative扩展Functor类特定类。 trait Functor[F[_]] { def fmap[A, B](r: F[A], f: A => B): F[B] } object Functor { implicit class FunctorOps[A, F[_]: Functor](xs: F[A]) { def fmap[

    2热度

    1回答

    我目前正在哈斯克尔建立一个服务器,并作为语言的新手,我想尝试一种新方法zu Monad组合。这个想法是,我们可以编写库方法,如 isGetRequest :: (SupportsRequests m r) => m Bool isGetRequest = do method <- liftRequests $ requestMethod return $ meth

    1热度

    2回答

    我 trait OptionTransaction { def data: Data } BuyOptionTransaction extends OptionTransaction SellOptionTransaction extends OptionTransaction 我使用这些有格式类型的类来创建各种交易 trait Formatter[T] { def

    0热度

    1回答

    我想建立一个没有任何相关性的接口,只有Scala库 让我们想象一下,这是我想要的东西: iface.jar ​​ 如您所见,它不包含任何导入。 让我们去实现: iface_implementation1.jar import play.api.libs.json._ trait myPlayJsonImpl extends jsonIface[JsValue] { def tur

    1热度

    1回答

    我的Scanamo将放有任何对象进行通用DynamoFormatCirce的Encoder和Decoder定义到数据库作为一个JSON字符串。 import com.gu.scanamo.DynamoFormat import io.circe.parser.parse import io.circe.syntax._ import io.circe.{Decoder, Encoder}

    4热度

    2回答

    ,我们可以得到一个价值层面证明[Int]具有使用Dict {-# LANGUAGE ConstraintKinds, GADTs #-} data Dict (p :: Constraint) where Dict :: p => Dict p 和 proof = Dict :: Dict (Show [Int]) 有没有办法得到一个值水平推导一个显示实例,那就是整个证明树?

    2热度

    1回答

    我是Haskell的新手,我正在尝试编写一个测试用例来证明Semigroup typeclass的关联定律。 数据类型定义如下: newtype Combine a b = Combine {unCombine :: (a -> b)} 如随后半群的实施: instance (Semigroup b) => Semigroup (Combine a b) where (Combine

    3热度

    1回答

    我有一些困难,找出为什么下面的代码不起作用。我期望,因为Command数据类型是ServerCommand或ClientCommand任何类型的构造函数,预计Command将能够接受一个或另一个。我似乎对这些数据类型应该如何排队有一个基本的误解。 data ClientCommand = SEND | DISCONNECT | CONNECT data