2016-04-06 33 views
0

Bu fonksiyonu varHaskell özyineleme

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 

şöyle ben func2 ulaşmak istiyoruz basit akışıdır:

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))) 

çağrı func2n hiçbir şey döndürür kere kadar Sonunda ve x, y, z, ..., a'da kararlaştırılmıştır.

Bunu nasıl yaparım?

cevap

1

map (func2 3.0) (tails list) istediğiniz gibi görünüyor.

+0

teşekkürler .. her halükarda çözdüm ama 5 satır kod var .. senin çok basit .. teşekkürler adam –