QuickCheckAll 始终返回“True”

2023-11-25

我正在尝试使用 QuickCheck 以下另一个答案。 我这样测试:

{-# LANGUAGE TemplateHaskell #-}
import Test.QuickCheck
import Test.QuickCheck.All


last' :: [a] -> a
last' [x] = x
last' (_:xs) = last' xs

prop_test x = last' x == last x

check = do
        putStrLn "quickCheck"
        quickCheck (prop_test :: [Char]-> Bool)

check2 = do
        putStrLn "quickCheckAll"
        $quickCheckAll

然后我将其加载到 winGHCI 中并调用check and check2. I get

quickCheck
*** Failed! (after 1 test): 
Exception:
  list.hs:(7,1)-(8,23): Non-exhaustive patterns in function last'
""

我认为这是合理的。但是,我从check2

quickCheckAll
True

我很困惑,因为无论我如何改变last'功能,甚至错误,quickCheckAll始终返回 True。

我的代码有什么问题吗?我怎样才能解决这个问题?


来自Test.QuickCheck.All docs:

To use quickCheckAll,按照以下方式向您的模块添加定义

return []
runTests = $quickCheckAll

然后执行runTests.

注:奇异之处return []上例中的 GHC 7.8 需要;没有它,quickCheckAll将无法找到任何属性。

Adding return []在你之前check让它对我有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QuickCheckAll 始终返回“True” 的相关文章

随机推荐

  • 没有父标签?
  • 可以用吗 li 没有父标签的标签 i e li li some copy 或者一定是 ul substitute your favorite list type li some copy li ul 有关该主题的链接 Spec XHTML
  • java中的多线程应用程序登录

    在多线程环境中进行日志记录的最佳方法和最佳工具是什么 以便每个线程都有自己的记录器实例和单独的文件 这可能吗 您可以尝试使用自定义 Log4J 附加程序 它采用线程 id 作为参数 并根据线程调用它来过滤消息 即时创建它 将其附加到记录器
  • Java 日期与日历

    有人可以建议当前的 最佳实践 吗Date and Calendar types 当编写新代码时 最好总是支持Calendar over Date 或者是否存在这样的情况Date是更合适的数据类型 Date 是一个更简单的类 主要是出于向后兼
  • 获取 Python Decimal 的精确十进制字符串表示形式?

    如果我有一个PythonDecimal 如何可靠地获得数字的精确十进制字符串 即不是科学记数法 表示而不带尾随零 例如 如果我有 gt gt gt d Decimal 1e 14 我想 gt gt gt get decimal string
  • 我应该学习原生 iOS 开发 (Objective-C) 还是完善 Javascript 和 Titanium Appcelerator 知识? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 基本上我需要你的建议 我的好朋友们 D 在过去的六个月里 我正在探索 学习 开发 iOS 应用程序钛加速器移动框架 我的经历大多是好的或非常好的 一些消极的部分钛的使用会耗费构建时间 尤其
  • 在 Go 中执行 shell 命令

    我希望在 Go 中执行 shell 命令 并在程序中以字符串形式获取结果输出 我看到了罗塞塔代码版本 package main import fmt import exec func main cmd err exec Run bin ls
  • C# 不同的转换方式 -- (T)obj 与 obj as T [重复]

    这个问题在这里已经有答案了 可能的重复 强制转换与在 CLR 中使用 as 关键字 我在 C 中见过两种不同的转换方式 例如 MyObj foo MyObj bar this is what I see most of the times
  • 如何防止软键盘出现在我的活动中?

    我正在编写一个以全屏横向模式运行的 Android 游戏 并且按钮位于窗口的左下角和右下角 问题是这些按钮之一 在许多手机上 就在 菜单 按钮旁边 因此玩家可能会意外地按 菜单 如果短暂按下它 我只需暂停游戏并显示游戏内菜单 那里没问题 但
  • gitlab 中的奇怪错误:致命:协议错误:行长度字符错误:Depl

    在我的一台服务器上 当我尝试在 gitlab 上 pull ls remote 新建的存储库时 出现以下错误 git ls remote email protected mas vem dinnerdelivery git fatal pr
  • 为 JPanel 添加鼠标监听器

    今天我遇到一个问题 我的程序制作了一个 8x8 网格 并在单击时显示坐标JButton 但我拒绝使用JButton我需要去JPanel 但是我的addMouseListener不工作 所以我不知道如何才能修复我从 4 小时开始搜索的问题 p
  • 在 PHP 中创建不带括号的函数,例如“echo”

    我想知道是否有任何在 PHP 中编写函数的好方法 这样它们就不需要在参数周围使用 Example function sayThis str echo str sayThis hi 谢谢 马特 穆勒 根本没有 echo 更像是一个运算符而不是
  • Wordpress:为用户创建新的 usermeta 字段

    如何创建带有下拉选择值的新用户元字段 我想为所有用户创建一个条件语句 并具有我想要的新自定义字段的特定值 例如 新字段为 Approved 下拉值为 是和否 条件语句将识别 已批准 字段值为 是 的所有用户 然后它会发布一个代码 我正在使用
  • 让 VS2015 验证 C# 早期语法以保持与 VS2013 兼容的方法

    我遇到的一个具体问题是 VS2015 允许您使用更新的 C 语法 例如public string MyProperty gt myProperty 当针对 NET 4 0 框架项目 然后其他人在 VS2013 中打开该项目时 会出现编译器错
  • 如何转义 R 中的反斜杠? [复制]

    这个问题在这里已经有答案了 我正在 R 中工作 并且在逃避反斜杠时遇到麻烦 我正在使用图书馆stringr install packages stringr repos http cran us r project org library
  • NaN 上的宇宙飞船运算符

    在进行太空船比较操作时 C 如何处理浮点 NaN 我们知道通常的比较总是返回 false 那么 NaN 会如何改变呢 std numeric limits
  • iOS 6 应用程序 - 如何处理 iPhone 5 屏幕尺寸? [复制]

    这个问题在这里已经有答案了 可能的重复 如何开发或迁移适用于 iPhone 5 屏幕分辨率的应用程序 我只是想知道我们应该如何应对 iPhone 5 更大的屏幕尺寸 由于它的高度像素更多 像 GCRectMake 这样使用坐标的东西 并且只
  • 杀死java中的无限循环

    我正在使用第三方库来处理大量数据集 该过程偶尔会进入无限循环 或被阻塞 不知道为什么并且无法进入代码 我想在设定的时间后杀死它并继续下一个案例 一个简单的例子是 for Object data dataList Object result
  • 使用父模型获取填充嵌套集合

    我有以下带有嵌套集合的模型 var Mdl Backbone Model extend initialize function collection this col1 new NestedCollection 我想在一个请求中发送模型和集
  • 如何触发 JavaScript 事件点击

    我的页面中有一个超链接 我正在尝试自动点击超链接以进行测试 有什么方法可以使用 JavaScript 模拟超链接的 50 次点击吗 a href target blank MSDN a 我正在寻找来自 JavaScript 的 onClic
  • QuickCheckAll 始终返回“True”

    我正在尝试使用 QuickCheck 以下另一个答案 我这样测试 LANGUAGE TemplateHaskell import Test QuickCheck import Test QuickCheck All last a gt a