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