Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (*
- sf3
- {
- n | 0
- result | peger på xs som er [1;2]
- }
- sf2
- {
- n | 1
- result | peger på ys som er 1::xs
- | [1;1;2]
- | bagefter sker der en List.rev
- | endelige resultat er [2;1;1]
- }
- sf1
- {
- n | 2
- result | peger på ys som er 2::ys
- | [2;2;1;1]
- | bagefter sker der en List.rev
- | endelige resultat er [1;1;2;2]
- }
- sf0
- {
- xs | [1;2]
- g | "closure of g"
- it | [1;1;2;2]
- }
- Vi starter med sf0, og så for hvert rekursivt kald af g bliver der
- pushet en ny stackframe ovenpå sf0. så vi har [sf0,sf1,sf2,sf3]. Når den rammer n=0 så regner den
- resultatet som er xs og så popper den det øverste stackframe "sf3". Ved sf2 får vi et "|1| |--->"
- som peger på xs. Den bliver så reverset. ved sf1 har vi den nye liste ys [2;1;1] hvorpå vi smider
- "|2| |--->" nu kan vi så poppe sf2, og resultatet af sf0 bliver listen reverset, så vi popper sf1.
- *)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement