小编kow*_*wey的帖子

如何从QuickCheck中获得好(小)缩小?

我试图在一些嵌套列表上运行QuickCheck,看起来像这样:

type Constraint = Text
data Value = Value [Constraint]
data Literal = Literal Value [Value]
type Formula = [Literal]
Run Code Online (Sandbox Code Playgroud)

所以公式是一个文字列表,每个文字都包含一个谓词和一些参数; 谓词/参数是每个字符串形式的约束分离的值.这给了我们一份列表清单列表,p!

如果我的一个QuickCheck属性失败,我倾向于得到一个难以理解的页面输出.在尝试收缩之前,我曾经通过使用只能生成一小组(小)值的任意实例来解决这个问题.为我的每个类型实现收缩功能似乎有点帮助,但没有我想要的那么多.我仍然得到一页输出.

我认为我想要收缩的是一个小文字列表,其中每个文字都有一个小的值列表,而这些值又有很少的约束,每个约束都尽可能短.但在我目前的努力中,至少这些列表变得足够大,使输出变得可怕.如果我尝试调整缩小实现,我也发现QC开始花费很长时间(寻找收缩?),这会削弱我有效收缩的努力.

当您嵌套这样的数据时,如何提高理解QuickCheck失败的几率?

haskell quickcheck

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

如何在WAI服务器中实现shutdown命令?

我想为我的webapp实现'graceful shutdown'命令(而不是我的第一直觉,就是要求人们杀死进程)

我的前两次尝试包括

  1. liftIO exitSuccess
  2. E.yield (responseLBS statusOK [G.contentType "text/plain"] "") E.EOF

两者都只是愉快地将结果返回给客户端并继续收听.应用程序可以做什么来杀死服务器?这甚至是一件合理的事情吗?

我承认我对iteratee没有很强的理解,只知道我可以消耗我的输入并且Iteratee是一个MonadIO实例.

haskell yesod

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

在64位Windows上GHC的当前状态是什么?

我目前的理解是

  • 没有64位GHC,门票#1884
  • 32位GHC和它构建的二进制文件工作正常,因为Windows操作系统加载程序将OS调用和指针转换为64位. 这同样适用于DLL
  • 没有混合32位和64位代码(即你的32位Haskell DLL不会成为想要使用它的64位程序的朋友)
  • 最新讨论是20115月开始的一个主题

它是否正确?是否有任何需要注意的缺陷,特别是作为FFI用户?例如,如果我将一些Haskell代码作为32位DLL导出到某些Windows程序,我应该期望它能够工作吗?

编辑:看起来你需要64位DLL才能使用64位进程

64-bit haskell

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

标签 统计

haskell ×3

64-bit ×1

quickcheck ×1

yesod ×1