4.3 Examen Informatica Partieel januari 1995
http://soft.vub.ac.be/SCPI/Hogere_Orde_Procedures.html
 
(define (doe-iets x y)
    (lambda (f x) (f y)))
 
(define (wat-gebeurt-er-met dit)
  (let* ((iets 5)
         (foo (doe-iets iets dit)))
    (foo (lambda (x) x) iets)))
 
;; Wat is dan het resultaat van de volgende procedure-aanroep? (Wat doet de procedure wat-gebeurt-er-met dus eigenlijk?) Verklaar je antwoord aan de hand 
;; van omgevingsmodel-diagrammen. (wat-gebeurt-er-met 12)
 
;; Als ik het goed heb, is het uiteindelijke resultaat van de procedure-aanroep "dit", in dit geval dus 12. 
;; Toch heb ik deze oefening volgens mij niet 100% onder de knie, ik ben namelijk niet zo zeker over het volgende:
;; Klopt het dat "lambda" zelf nooit op zoek gaat naar de actuele parameters van zijn formele parameters? Je moet ze zelf ingeven door na de "lambda", 
;; hier dus (lambda (f x) (f y)) een aanroep te doen? Bv. ((lambda (f x) (f y)) double 4)
;; Dit heb ik geconcludeerd omdat de formule "doe-iets" wordt aangeroepen zonder een actuele parameter voor "f", maar er volgt geen error.
 
 
;; Uiteindelijk gaat de (f y) wel op zoek naar de actuele parameter voor y en vindt die, in dit geval "12". En aangezien de functie waarmee y wordt aangeroepen
;; (lambda (x) x) is, geeft die gewoon 12 terug.
 
;; Klopt alles wat ik zeg? Ik hoop dat het een beetje duidelijk is...