#! /usr/bin/env python
# -*- coding:Utf8 -*-

"""
Exemple de cloture.

fichier : cloture.py
auteur : Bob
"""

# Définition de cloture ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def add(x, y):
    def do_add():
        # x et y sont 'libres' car locales à la fonction englobante
        print(f"Adding {x} + {y} -> {x+y}")
    return do_add

# Définition de fonction ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def after(seconds, func):
    import time
    time.sleep(seconds)
    func()

# Programme principal =========================================================
## la cloture do_add() reference : x -> 2 et y -> 3
after(2, add(2, 3))
## puis : x -> 7 et y -> -1
after(2, add(7, -1))
