我需要使用签名创建一个函数diffFolge :: (Integer, Integer) -> [Integer],当应用于参数pair (m, n)(m, n> 0)时,会返回一个降序的数字列表,即数字之间的差异n.结果列表的第一个元素是m,最后一个元素始终大于0且最后一个元素或者0严格小于的值0.
我写的如下:
diffFolge :: (Integer,Integer) -> [Integer]
diffFolge (m,n) = if m > 0 && n > 0 then [m,m-n..n-2*n] else []
Run Code Online (Sandbox Code Playgroud)
例
input : diffFolge (5,1)
output : [5,4,3,2,1,0]
Run Code Online (Sandbox Code Playgroud)
例
input : diffFolge (5,2)
output :[5,3,1,-1] ---> This is true by my code
Run Code Online (Sandbox Code Playgroud)
但是,使用第一个示例中给出的输入,我的函数返回[5,4,3,2,1,0,-1].我怎么能纠正这个?
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |