Stratego For Functional Programmers

Stratego -- Strategies for Program Transformation
Wij waren op zoek naar een zipWith-achtige functie in stratego; de referentiepagina bevat allemaal harige strategocode waar wij met onze pet niet zo snel bij kunnen ;)

Welke functie moeten wij hebben? We willen twee lijstjes combineren door telkens een functie toe te passen en zo elementen voor de resultaatlijst op te leveren.

-- Wessel

Wat dacht je van

   <zip(f)> ([a,b],[c,d]) => [<f>(a,c), <f>(b,d)]

-- Eelco

Aha!

Hoe worden de argumenten van zip nou meegegeven? De functie f is duidelijk, maar worden die lijstjes nou anders meegegeven? Of is dit geheel ook te schrijven als zip(f, ([a,b], [c,d])) ? Of zelfs als zip(f, [a,b], [c,d]) ?

Ik probeer stratego te begrijpen ;)

-- WesselDankers

One of the problems in understanding Stratego is the difference between strategies and terms. Strategy operators have strategies as arguments (the f argument of zip ) A strategy operates on a a term. Sometimes such a term can be a tuple of terms, as is the case in the term to which zip is applied.

-- EelcoVisser - 02 Jan 2002

See also Rules versus Strategies.

-- EelcoVisser - 13 May 2003