小编gat*_*ado的帖子

是否有一个Sphinx reST Python docstring字段用于收益?

我正在尝试使用reST风格的文档字符串,即

def foo(bar):
    """a method that takes a bar

    :param bar: a Bar instance
    :type bar: Bar
Run Code Online (Sandbox Code Playgroud)

是否有标准的文件记录方式yields?我查看了http://sphinx-doc.org/domains.html#info-field-lists,a-la这个问题[ 使用javadoc for Python文档 ],但没有运气.我想象的是,

    :yields: transformed bars
    :yield type: Baz
Run Code Online (Sandbox Code Playgroud)

谢谢!

python documentation restructuredtext python-sphinx

21
推荐指数
2
解决办法
5636
查看次数

GHC 7.4.1的约束种类语法是什么?

Constraint当我尝试编写一个简单的例子时,我收到的错误不在范围内,

{-# LANGUAGE UndecidableInstances,
            MultiParamTypeClasses,
            KindSignatures,
            Rank2Types,
            ConstraintKinds,
            FlexibleInstances,
            OverlappingInstances,
            TypeFamilies #-}

type family A a :: Constraint
Run Code Online (Sandbox Code Playgroud)

错误是,

> ghci test.hs
[1 of 1] Compiling Main             ( test.hs, interpreted )

test.hs:10:20: Not in scope: type constructor or class `Constraint'
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)

约束同义词似乎按预期工作,

type ShowOrd a = (Ord a, Show a)
Run Code Online (Sandbox Code Playgroud)

提前致谢.

haskell typeclass constraint-kinds

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

榆树:如何在HTML列表中显示字符串列表?

我正在编写一个elm程序,它应该在HTML列表中格式化其输出.我想要的功能,

inputs = ["first", "second", "third"]
Run Code Online (Sandbox Code Playgroud)

并输出某种Element基本上是榆树的,

<ul>
    <li>first</li>
    <li>second</li>
    <li>third</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

可悲的是,我找不到任何内置函数来执行此操作.也许markdown语法可以扩展为采用类似Mustache的模板,

[markdown|
{{#inputs}}
* {{text}}
{{/inputs}}
]
Run Code Online (Sandbox Code Playgroud)

(抱歉,我不确定对于字符串数组而不是对象数组,正确的Mustache语法是什么.

原始的HTML元素发射也很好.提前致谢!

elm

20
推荐指数
3
解决办法
1万
查看次数

clojure - 本地覆盖运算符的正确方法,如"+","*"等

覆盖像"+"这样的方法的正确方法是什么?现在我有

(defn- + [x y] (replacement x y))
Run Code Online (Sandbox Code Playgroud)

但这会在命令行上产生警告.

WARNING: + already refers to: #'clojure.core/+ in namespace: <MY-NAMESPACE>, being replaced by #'<MY-NAMESPACE>/+
Run Code Online (Sandbox Code Playgroud)

overriding clojure

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

Haskell - 双重人格IO/ST monad?

我有一些代码目前使用ST monad进行评估.我不喜欢将IO放在任何地方,因为该runST方法产生纯粹的结果,并指示这样的结果可以安全地调用(相对unsafePerformIO).但是,由于我的一些代码变得更长,我确实希望将调试打印语句放入.

是否有任何类提供双重个性monad [或类型类机制],可以是ST或IO(取决于其类型或"isDebug"标志)?我记得SPJ在他的"Fun with Type Functions"论文中引入了一个"Mutation"类,它使用关联类型将IO与IORef和ST关联到STRef.这样的包存在某个地方吗?

编辑/解决方案

非常感谢[第n次],CA McCann!使用该解决方案,我能够为支持pdebug函数的monad引入一个额外的类.该ST单子会忽略这些呼叫,而IO将运行putStrLn.

class DebugMonad m where
    pdebug :: String -> m ()

instance DebugMonad (ST s) where
    pdebug _ = return ()

instance DebugMonad IO where
    pdebug = putStrLn

test initV = do
    v <- newRef initV
    modifyRef v (+1)
    pdebug "debug"
    readRef v
testR v = runST $ test v
Run Code Online (Sandbox Code Playgroud)

这在ghci中有一个非常幸运的结果.由于默认情况下表达式是IO类型,因此运行类似"test 3"的操作将导致IO monad运行,因此您可以轻松地调试它,然后在您真正想要运行时使用类似"testR"的方法调用它它.

monads haskell io-monad st-monad

18
推荐指数
2
解决办法
1380
查看次数

使用Haskell正则表达式库替换/替换

是否有一个高级API用于在Haskell中使用正则表达式进行搜索和替换?特别是,我正在看Text.Regex.TDFAText.Regex.Posix包.我真的很喜欢某种类型:

f :: Regex -> (ResultInfo -> m String) -> String -> m String
Run Code Online (Sandbox Code Playgroud)

所以,例如,用"cat"代替"dog"你可以写

runIdentity . f "dog" (return . const "cat")    -- :: String -> String
Run Code Online (Sandbox Code Playgroud)

或者使用monad做更高级的事情,比如计算事件等.

Haskell的文档非常缺乏.一些低级别的API说明是这里.

regex haskell

18
推荐指数
2
解决办法
4332
查看次数

有没有办法让"make"回显命令

有没有办法在makefile make中手动抑制echo命令@?我在帮助或手册页中找不到这个,只是说"--quiet"做相反的事情.

makefile

15
推荐指数
2
解决办法
1万
查看次数

如何使用Criterion来衡量Haskell程序的性能?

我正在尝试使用Criterion框架来衡量一个简单的Haar DWT程序的性能.(这是错误的慢,但我会留下另一个问题).遗憾的是,我无法在网上找到任何好的文档.我的两个主要问题是

  • 如何将数据从一个基准传递到另一个?我想计划该计划的每个阶段.
  • 采样如何工作,并避免延迟评估重用其先前的计算?

这个来源相对减少了; 第一个函数getRandList生成一个随机数列表; haarStep将输入信号转换为差值和求和,并haarDWT调用前者并对求和进行递归.我试图传递getRandListhaarDWT通过懒惰的评价,但也许我的使用是不正确/不支持.时间似乎没有意义.

{-# LANGUAGE ViewPatterns #-}

import Control.Arrow
import qualified Data.Vector.Unboxed as V
import System.Random
import Criterion.Main

invSqrt2 = 0.70710678118654752440

getRandList :: RandomGen g => g -> Int -> [Float]
getRandList gen 0 = []
getRandList gen n = v:rest where
    (v, gen') = random gen
    rest = getRandList gen' (n - 1)

haarStep :: V.Vector Float -> (V.Vector Float, V.Vector Float)
haarStep = (alternatingOp (-) …
Run Code Online (Sandbox Code Playgroud)

performance haskell haskell-criterion

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

有什么办法在do/while/let块中打印出一个变量类型?

有没有办法打印出嵌套变量的推断类型ghci?考虑一下代码,

let f = g where
    g (x :: Int) = x
Run Code Online (Sandbox Code Playgroud)

然后,查询类型会很好g,例如:t f.g打印出来Int -> Int.

haskell ghci

15
推荐指数
2
解决办法
8117
查看次数

Haskell - 任何限制或消除记录名称的方法?

我有两种数据类型,用于hastache模板.在我的代码中有两种不同的类型是有意义的,都有一个名为"name"的字段.当然,这会引发冲突.似乎有一种机制可以消除对"name"的任何调用的歧义,但实际的定义会导致问题.是否有任何解决方法,比如让记录字段名称合格?

data DeviceArray = DeviceArray
    { name :: String,
      bytes :: Int }
    deriving (Eq, Show, Data, Typeable)

data TemplateParams = TemplateParams
    { arrays :: [DeviceArray],
      input :: DeviceArray }
    deriving (Eq, Show, Data, Typeable)

data MakefileParams = MakefileParams
    { name :: String }
    deriving (Eq, Show, Data, Typeable)
Run Code Online (Sandbox Code Playgroud)

即如果字段现在在代码中使用,它们将是"DeviceArray.name"和"MakefileParams.name"?

haskell record

14
推荐指数
3
解决办法
2745
查看次数