2016-04-06 20 views
0

私はHaskellの再帰

この機能を持っている
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のn回、それは何も返さないまで末尾にconcat xyz、...、a

どうすればいいですか?

答えて

1

あなたが望むように見えます。map (func2 3.0) (tails list)

+0

ありがとう..私はとにかくそれを解決したが、コードの5行を持って..あなたの1つはとてもシンプルです..ありがとう男 –

関連する問題