Declaratieve Talen/Oplossing Oneindige rij: verschil tussen versies

Uit Wina Examenwiki
Naar navigatie springen Naar zoeken springen
WinaBot (overleg | bijdragen)
Regel 2: Regel 2:


  infinite :: t -> ([t]->t) -> [t]
  infinite :: t -> ([t]->t) -> [t]
 
  infinite b f = b:(infinite2 [b] f)
  infinite b f = b:(infinite2 [b] f)
     where infinite2 voorstuk f =
     where infinite2 voorstuk f =

Versie van 15 jan 2009 00:25

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