예제 #1
0
파일: liste.py 프로젝트: jldupont/pyfnc
 def filter(self, f, *args, **kwargs):
     """
     Keeps only the elements where f(el)==True
     """
     _f=partial(f, *args, **kwargs)
     
     self[:]=filter(_f, self)
     return self
예제 #2
0
파일: liste.py 프로젝트: jldupont/pyfnc
 def find(self, f, *args, **kwargs):
     """
     Returns the first element matching the predicate 'f' else returns None
     """
     _f=partial(f, *args, **kwargs)
     
     for el in self:
         if _f(el):
             return el
예제 #3
0
파일: liste.py 프로젝트: jldupont/pyfnc
 def map(self, f, *args, **kwargs):
     """
     Applies 'f' to all elements
     
     returns 'self'
     """
     _f=partial(f, *args, **kwargs)
     
     self[:]=map(_f, self)
     return self
예제 #4
0
파일: dic.py 프로젝트: jldupont/pyfnc
 def count(self, f, *args, **kwargs):
     """
     Count pairs matching predicate
     """
     _f=partial(f, *args, **kwargs)
     
     count=0
     for k,v in self.items():
         if _f(k,v):
             count=count+1
     return count
예제 #5
0
파일: dic.py 프로젝트: jldupont/pyfnc
    def any(self, f, *args, **kwargs):
        """
        Applies 'f' to all [k:v] pairs and expects at least 1 'True' result
        """
        _f = partial(f, *args, **kwargs)

        for x, y in self.items():
            if _f(x, y):
                return True

        return False
예제 #6
0
파일: dic.py 프로젝트: jldupont/pyfnc
    def all(self, f, *args, **kwargs):
        """
        Applies 'f' to all [k:v] pairs and expects 'True' for all results
        """
        _f = partial(f, *args, **kwargs)

        for x, y in self.items():
            if not _f(x, y):
                return False

        return True
예제 #7
0
파일: liste.py 프로젝트: jldupont/pyfnc
    def all(self, f, *args, **kwargs):
        """
        Applies 'f' to all elements and expects 'True' for all results
        """
        _f=partial(f, *args, **kwargs)

        for el in self:
            if not _f(el):
                return False

        return True
예제 #8
0
파일: liste.py 프로젝트: jldupont/pyfnc
 def count(self, f, *args, **kwargs):
     """
     Counts elements in the list matching 'f' predicate
     """
     _f=partial(f, *args, **kwargs)
     
     count=0
     for el in self:
         if _f(el):
             count=count+1
     return count
예제 #9
0
파일: liste.py 프로젝트: jldupont/pyfnc
    def any(self, f, *args, **kwargs):
        """
        Applies 'f' to all elements and expects at least 1 'True' result
        """
        _f=partial(f, *args, **kwargs)

        for el in self:
            if _f(el):
                return True

        return False
예제 #10
0
파일: dic.py 프로젝트: jldupont/pyfnc
 def map(self, f, *args, **kwargs):
     """
     Applies 'f' for each [k,v] pair - 'f' must return (k,v) pair
     """
     #_f = self._f(f, *args, **kwargs)
     _f=partial(f, *args, **kwargs)
     
     d=dic()
     for k,v in self.items():
         nk, nv=_f(k,v)
         d[nk]=nv
     self.clear()
     return self.clear().update(d)
예제 #11
0
파일: liste.py 프로젝트: jldupont/pyfnc
 def tee(self, f, *args, **kwargs):
     """
     Calls 'f' on self, returns self, keeps 'last value'
     """
     self.last_value=partial(f, *args, **kwargs)(self)
     return self
예제 #12
0
파일: liste.py 프로젝트: jldupont/pyfnc
 def do(self, f, *args, **kwargs):
     """
     Calls 'f' on self, returns result
     """
     return partial(f, *args, **kwargs)(self)
예제 #13
0
파일: liste.py 프로젝트: jldupont/pyfnc
 def reduce(self, f, *args, **kwargs):
     """
     Reduce
     """
     _f=partial(f, *args, **kwargs)
     return reduce(_f, self)