Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 复制数字并返回列表的自定义函数? myreplica::(numa,orda)=>a->b->[b] myreplica num val |num_Haskell - Fatal编程技术网

Haskell 复制数字并返回列表的自定义函数? myreplica::(numa,orda)=>a->b->[b] myreplica num val |num

Haskell 复制数字并返回列表的自定义函数? myreplica::(numa,orda)=>a->b->[b] myreplica num val |num,haskell,Haskell,用括号括住负数,即myreplica(-1)123。然而,您可能希望在第一个参数中为负数添加一个使用error的特殊情况,因为重复负数次是没有意义的 用括号将负数括起来,即myreplica(-1)123。然而,您可能希望在第一个参数中为负数添加一个使用error的特殊情况,因为重复负数次是没有意义的 您实际上不需要(Num a,Ord a),但它是可识别的,还请注意,最好使用(:)函数而不是“(++”)函数,如下所示: "ghci> " replicate' -1 123 <i

用括号括住负数,即
myreplica(-1)123
。然而,您可能希望在第一个参数中为负数添加一个使用
error
的特殊情况,因为重复负数次是没有意义的


用括号将负数括起来,即
myreplica(-1)123
。然而,您可能希望在第一个参数中为负数添加一个使用
error
的特殊情况,因为重复负数次是没有意义的


您实际上不需要
(Num a,Ord a)
,但它是可识别的,还请注意,最好使用
(:)
函数而不是“(++”)函数,如下所示:

"ghci> " replicate' -1 123 

<interactive>:72:1:
    Non type-variable argument in the constraint: Num (i -> a -> [a])
    (Use FlexibleContexts to permit this)
   When checking that ‘it’ has the inferred type
      it :: forall i a a1.
            (Num i, Num a1, Num (i -> a -> [a]), Num (a1 -> i -> a -> [a]),
             Ord i) =>
            i -> a -> [a]
myreplica::(numa,orda)=>a->b->[b]
myreplica num val

|num您实际上不需要
(num a,Ord a)
,但它是可重新编码的,还请注意,最好使用
(:)
函数而不是“(++”)函数,如下所示:

"ghci> " replicate' -1 123 

<interactive>:72:1:
    Non type-variable argument in the constraint: Num (i -> a -> [a])
    (Use FlexibleContexts to permit this)
   When checking that ‘it’ has the inferred type
      it :: forall i a a1.
            (Num i, Num a1, Num (i -> a -> [a]), Num (a1 -> i -> a -> [a]),
             Ord i) =>
            i -> a -> [a]
myreplica::(numa,orda)=>a->b->[b]
myreplica num val

|num感谢您的快速响应。您能解释一下为什么我们必须使用(num a,Ord a)吗?谢谢您的快速响应。您能解释一下为什么我们必须使用(num a,Ord a)吗?上面的内容被解析为
(replicate')-(1 123)
,其中最后一部分的意思是“function
1
应用于参数
123
”,这毫无意义。然后类型检查器抱怨
replicate'
没有数字类型:
Num(i->a->[a])
没有实例。@chi感谢解释。上面被解析为
(replicate')-(1123)
,其中最后一部分表示“函数
1
应用于参数
123
”,这是没有意义的。然后类型检查器抱怨
replicate'
没有数字类型:
Num(i->a->[a])
没有实例。@chi感谢您的解释。
 myreplica :: (Num a,Ord a) => a -> b -> [b]
 myreplica num val 
         | num <= 0  = []
         | otherwise = val : myreplica (num-1) val