TP1 INFO1 Module Algèbre

Python
def big(loi , neutre )  :
    """
    - loi est une lci de type (a,a) -> a
    - neutre est le neutre de loi
    - retourne une fonction qui prend une liste [x1, x2, ...]
    et renvoie ((neutre 'loi' x1) 'loi' x2) 'loi' ...
 
    >>> big(lambda x, y : x + y, 0)([2, 3, 4])
    9
    """
    def fonc_reductrice(xs) :
        """
        C'est la fonction qui sera retournée par big(loi, neutre)
        xs est une liste d'éléments de type a
 
        >>> fonc_reductrice([2, 3, 4]) # dans le cas où loi est + et neutre est 0
        9
        """
        return 0
    return fonc_reductrice
 
def reduit(loi, collection, neutre) :
    """
    on fabrique reduce à partir de big
    """
    return 0#avec big
 
def filtre(predicat, xs) :
    """
    Renvoie la liste des éléments de xs qui vérifient le prédicat
 
    >>> filtre(lambda x : x >= 3, [1, 2, 3, 4])
    [3, 4]
    """
    return 0#reduit(???, xs, ???)
 
 
def applique(fonc, xs) :
    """
    Renvoie la liste des images des éléments de xs par fonc
 
    >>> applique(ord , ['a', 'b', 'c'])
    [97, 98, 99]
    """
    return 0#reduit(???, xs, ???)