小编Gsp*_*pia的帖子

Haddock编号列表延续

如何使用haddock文档工具继续编号列表?黑线鳕的以下几行

--  1. First line.
-- 
--  2. Second line with instructions to do something 
-- 
--     >>> command-linecmd param
--
--  3. Third line..
--
Run Code Online (Sandbox Code Playgroud)

生成下一个html:

</p><ol><li> First line.
</li><li> Second line with instructions to do something 
</li></ol><pre class="screen"><code class="prompt">&gt;&gt;&gt; </code><strong         class="userinput"><code>command-linecmd param
</code></strong></pre><ol><li> Third line..
</li></ol>
Run Code Online (Sandbox Code Playgroud)

这打破了编号.有没有办法让黑线鳕继续使用HTML中的第三个数字,或者我应该尝试其他的东西(>>>给出一个很好的格式,我为什么要使用它)?

haskell haddock

32
推荐指数
1
解决办法
473
查看次数

Haskell样式和类型类设计(应该最小化类型?)

假设

class A a where
   m1 :: a -> a 
   m2 :: a -> a
   m3 :: a -> a
   ...
Run Code Online (Sandbox Code Playgroud)

可以使用m1为m2和m3编写默认实现.

离开m2m3进入A或将它们写为A m2 :: A a => a -> a之外的额外函数是否更好?或者换句话说,值得最小化类API还是重要?

我检查了(快速)一些样式指南,比如programmin指南大型设计中的一些链接-问题,以及一些书籍(工艺和rwh),但找不到这个指南.如果有关于此类问题的演示文稿,博客或书籍,请您分享一些指示?

电子邮件列表线程类型类设计讨论了这一点,并可能强调最小化.

haskell

7
推荐指数
1
解决办法
132
查看次数

类型族和派生实例(Eq)

是否有可能为其提供Eq实例B a,如果给予额外帮助,例如Eq a某处?

{-# LANGUAGE TypeFamilies #-}

class A a where
  type B a 
  somef :: a -> B a -> B a -> Bool
Run Code Online (Sandbox Code Playgroud)

使用类型族类型族的实例定义派生实例的问题很接近.以下内容在type B a-line 上不起作用或类似修改(或者只是尝试了错误的修改).

{-# LANGUAGE StandaloneDeriving #-}
-- deriving instance Eq (B a) -- illegal application
-- deriving instance Eq a => Eq (B a) -- illegal application
Run Code Online (Sandbox Code Playgroud)

约束Eq a => A a并没有帮助.将约束添加到somefcompiles(somef :: Eq a => ... …

haskell type-families

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

如何摆脱可能多余的功能约束?

让我们有两个没有任何方法的类,另一个是子类.此外,假设功能f5f6那些unsafeCoerce从类型等.

现在,ghci可以组合这些函数并找到它们的签名(在ScopedTypeVariables的帮助下),见f56, f56b and f56'下文.这些本质上是具有约束的函数Hmm.

  1. 是否可以编写f56c,即在没有引用SHmm约束中的类的情况下编写它?例如,ghci可以在一些language-pragma的帮助下编译吗?

  2. unsafeCoerce当班级没有任何方法时,使用会有什么样的危险?(或者当子类SHmm 没有任何方法?)有没有写别的办法/推荐的方式f5f6

作为最后一个,在下面的代码中f5,f6有他们的签名,为什么不可能只写f56 = f5 . f6?(特别是在SHmm空的情况下,这就是SHmm在编写时很容易认为不需要约束的原因f56.)

{-# LANGUAGE ScopedTypeVariables, KindSignatures, MultiParamTypeClasses #-}
{-# LANGUAGE RankNTypes, FlexibleInstances, FlexibleContexts #-}
{-# LANGUAGE AllowAmbiguousTypes #-}

import Unsafe.Coerce

class Hmm (f :: *)
class Hmm f => SHmm f

f5 :: (Hmm m1, SHmm m) …
Run Code Online (Sandbox Code Playgroud)

haskell

0
推荐指数
1
解决办法
53
查看次数

标签 统计

haskell ×4

haddock ×1

type-families ×1