IO(输入输出)
putStr(输入Str) :: 字符串 -> IO(输入输出) () 获取线路 :: IO(输入输出) 字符串 写入文件 :: 文件路径 -> 字符串 -> IO(输入输出) () readFile(读取文件) :: 文件路径 -> IO(输入输出) 字符串
做
copyFile(复制文件) :: 文件路径 -> 文件路径 -> IO(输入输出) () copyFile(复制文件) 从 到 = 做 文本 <- readFile(读取文件) 从 写入文件 到 文本
项目示例(_E) :: 整数 -> 布尔 项目示例(_E) n个 = ( n个 + 3 ) ^ 2 == n个 ^ 2 + 6 * n个 + 9
快速检查prop_example
消息 一
任意的 :: 任意的 一 => 消息 一
样品 :: 显示 一 => 消息 一 -> IO(输入输出) () 样品' :: 消息 一 -> IO(输入输出) [ 一 ] 生成 :: 消息 一 -> IO(输入输出) 一
sample”(任意::Gen整数)
sample”(任意::Gen整数)
sample(任意::Gen Bool)
样本(任意::Gen[Integer])
元素 :: [ 一 ] -> 消息 一 其中之一 :: [ 消息 一 ] -> 消息 一 频率 :: [( 国际 , 消息 一 )] -> 消息 一 列表 :: 消息 一 -> 消息 [ 一 ] 向量Of :: 国际 -> 消息 一 -> 消息 [ 一 ] 选择 :: 随机 一 => ( 一 , 一 ) -> 消息 一
选择
系统。 随机
选择
列表
样本'(选择('a','z'))
sample”(列表Of(选择('a','z'))
套装
数据 套装 = 黑桃 | 红心大战 | 钻石 | 俱乐部 推导 ( 等式 , 显示 )
元素
r套装 :: 消息 套装 r套装 = 元素 [ 黑桃 , 红心大战 , 钻石 , 俱乐部 ]
排名
数据 排名 = 数字 整数 | 杰克 | 女王 | 国王 | 王牌 推导 ( 等式 , 显示 )
元素
r数字 :: 消息 排名 r数字 = 元素 [ 数字 n个 | n个 <- [ 2 .. 10 ]] r人脸卡 :: 消息 排名 r人脸卡 = 元素 [ 杰克 , 女王 , 国王 , 王牌 ] r排名_v1 :: 消息 排名 r排名_v1 = 其中之一 [ r数字 , r人脸卡 ] r排名 :: 消息 排名 r排名 = 频率 [( 9 , r数字 ),( 4 , r人脸卡 )]
r排名_v1
r排名
卡片
数据 卡片 = 卡片 排名 套装 推导 ( 等式 , 显示 )
r卡片 :: 消息 卡片 r卡片 = ( ?? )
r套装
r排名
消息 一
一
IO(输入输出) 一
一
做
r卡片 :: 消息 卡片 r卡片 = 做 第页 <- r排名 秒 <- r套装 返回 ( 卡片 第页 秒 )
做
返回
消息 一
IO(输入输出) 一
sample”(返回5::Gen整数)
do两次
sample(doTwice(任意::Gen整数))
偶数整数 :: 消息 整数 偶数整数 = 做 n个 <- 任意的 返回 ( 2 * n个 ) 非阴性 :: 消息 整数 非阴性 = 做 n个 <- 任意的 返回 ( 防抱死制动系统 n个 )
sample的evenInteger
sample“非负”
手
数据 手 = 清空 | 添加 卡片 手 推导 ( 等式 , 显示 )
r手 :: 消息 手 r手 = 其中之一 [ 返回 清空 , 做 c(c) <- r卡片 小时 <- r手 返回 ( 添加 c(c) 小时 )]
r手
排名
有效等级 :: 排名 -> 布尔 有效银行 ( 数字 n个 ) = 2 <= n个 && n个 <= 10 有效等级 _ = 真的
有效等级
r银行
面向所有人
prop_all_validRank_1 = 面向所有人 r排名 有效等级
任意的
实例 任意的 排名 哪里 任意的 = r排名 prop_all_validRank_2 第页 = 有效等级 第页
班 任意的 哪里 任意的 :: 消息 一 收缩 :: 一 -> [ 一 ]
实例 任意的 布尔 实例 任意的 国际 实例 任意的 整数 --更多实例。。。
面向所有人
prop_all_validRank_3 第页 = 收集 第页 ( 有效等级 第页 )
快速检查prop_all_validRank_3
收集 第页
第页
实例 任意的 手 哪里 任意的 = r手 大小 清空 = 0 大小 ( 添加 c(c) 小时 ) = 1 + 大小 小时 prop_手柄 小时 = 收集 ( 大小 小时 ) 真的
快速检查prop_Hand
r手 :: 消息 手 r手 = 频率 [( 1 , 返回 清空 ), ( 4 , 做 c(c) <- r卡片 小时 <- r手 返回 ( 添加 c(c) 小时 ))]
快速检查prop_Hand
插入
插入'c'“abdef”
项目插入_1 :: 整数 -> [ 整数 ] -> 布尔 项目插入_1 x个 X轴 = 已订购 ( 插入 x个 X轴 )
快速检查prop_insert_1
项目插入_2 :: 整数 -> [ 整数 ] -> 财产 项目插入_2 x个 X轴 = 已订购 X轴 ==> 已订购 ( 插入 x个 X轴 )
快速检查prop_insert_2
有序列表 :: ( 任意的 一 , 订单 一 ) => 消息 [ 一 ]
prop_插入_3 x个 = 面向所有人 有序列表 ( \ X轴 -> 已订购 ( 插入 x个 X轴 ))
项目插入-4 x个 ( 命令 X轴 ) = 已排序 ( 插入 x个 X轴 )
道具插入4 x个 ( 命令 X轴 ) = 已订购 ( 插入 x个 X轴 )
数据 有序列表 一 = 命令 [ 一 ] 实例 ( 订单 一 , 任意的 一 ) => 任意的 ( 有序列表 一 ) 哪里 任意的 = 有序列表
有序列表
IO(输入输出)
消息
做
IO(输入输出)
消息