Haskell的total、iter函数参数要求及GHCi测试方法咨询
Haskell函数调用测试说明
1. total 函数
参数要求
total第一个参数f的类型为Integer -> Integer,只要是接收单个Integer类型输入、返回Integer类型结果的函数都可以传入,没有额外限制。
GHCi测试示例
你可以直接用内置运算符、自定义匿名函数做参数:
-- 测试1:对0到3的每个数+1后求和,结果为1+2+3+4=10 ghci> total (+1) 3 10 -- 测试2:对0到2的每个数取平方后求和,结果为0+1+4=5 ghci> total (\x -> x * x) 2 5 -- 测试3:对0到3的每个数乘2后求和,结果为0+2+4+6=12 ghci> total (*2) 3 12
2. iter/iter' 函数
参数要求
两个函数的第二个参数f的类型为a -> a,只要是输入和输出类型完全相同的函数都可以传入,输入输出的具体类型没有限制,可以是数值、字符串、列表等任意类型。
GHCi测试示例
两个函数功能完全一致,替换函数名即可得到相同结果:
-- 测试1:对数值0执行3次+1操作,结果为3 ghci> iter 3 (+1) 0 3 ghci> iter' 3 (+1) 0 3 -- 测试2:对字符串"hello"执行2次追加感叹号操作,结果为"hello!!" ghci> iter 2 (++"!") "hello" "hello!!" ghci> iter' 2 (++"!") "hello" "hello!!" -- 测试3:对空列表执行4次头部插入1的操作,结果为[1,1,1,1] ghci> iter 4 (1:) [] [1,1,1,1] ghci> iter' 4 (1:) [] [1,1,1,1] -- 测试4:对数值2执行2次平方操作,结果为(2^2)^2=16 ghci> iter 2 (\x -> x*x) 2 16 ghci> iter' 2 (\x -> x*x) 2 16
内容的提问来源于stack exchange,提问作者Quin
相关产品推荐
相关产品推荐

