2016-04-06 50 views
0

我有这个功能哈斯克尔递归

func1 :: Double -> [(Double,Double)] -> Maybe [(Double,Double)] 
............... 
func2 :: Double -> [(Double,Double)] -> [(Double,Double)] 
func2 d [] = [] 
func2 d list = 
    let dsegs1 = func1 d list 
     dsegs2 = func2 d (tail list) 
    in fromJust dsegs1 ++ dsegs2 

简单的流程,我想在func2实现如下:

let x = func2 3.0 list 
let y = func2 3.0 (tail list) 
let z = func2 3.0 (tail (tail list)) 
let a = func2 3.0 (tail (tail (tail list))) 

呼叫func2ň多次,直到没有返回最后和concat x,y,z,...,a

我该怎么做?

回答

1

它看起来像你想map (func2 3.0) (tails list)

+0

谢谢..我反正解决了它,但有5行代码..你的一个很简单..谢谢你 –