Bonjour, j'essaye de suivre un tutorial Clojure, et il y a un exemple que j'ai du mal à saisir (source).

Le voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
;; inc-by is in scope, so the returned function has access to it even
;; when the returned function is used outside inc-maker
(defn inc-maker
  "Create a custom incrementor"
  [inc-by]
  #(+ % inc-by))

(def inc3 (inc-maker 3))

(inc3 7) ; => 10
Le sujet est les fonctions retournants des fonctions. Je ne comprends pas pourquoi le % retourne 7 dans la fonction inc-maker, dans l'exemple utilisé.

Tel que je le vois actuellement :

1) La fonction in3 et exécutée avec en paramètre (inc-maker 3)
2) La liste [inc-by] est le paramètre 3?
3) D'où sort le %=7 dans la fonction anonyme # ??

Merci de vos lumières.

P.S. je ne savais pas où mettre ma question, dans Lisp ou non...