Declaratieve Talen/Oplossing Oneindige rij

Uit Wina Examenwiki
Versie door Roald (overleg | bijdragen) op 31 dec 2009 om 17:25
Naar navigatie springen Naar zoeken springen

Een oplossing

infinite :: t -> ([t]->t) -> [t]

infinite b f = b:(infinite2 [b] f)
    where infinite2 voorstuk f =
         let
              res = f voorstuk
         in
              res:(infinite2 (voorstuk ++ [res]) f)


De clou is het begin van de rij bijhouden in een parameter. M'n inspiratie kwam uit de Fibonacci-rij op p.26

Alternatief

infinite::t->([t]->t)->[t]
infinite x f = x:inf [x] f
 where
	inf r f = f r : inf ((f r):r) f