예제 #1
0
파일: recursive.py 프로젝트: drkjam/funpy
def all(xs):
    if not xs:
        return True
    else:
        x = head(xs)
        if not x:
            return False
        return and_(x, all(tail(xs)))
예제 #2
0
파일: recursive.py 프로젝트: drkjam/funpy
def any(xs):
    if not xs:
        return False
    else:
        x = head(xs)
        if x:
            return True
        return or_(x, any(tail(xs)))
예제 #3
0
def foldr(f, v, xs):
    if not xs:
        return v
    else:
        return f(head(xs), foldr(f, v, tail(xs)))
예제 #4
0
파일: recursive.py 프로젝트: drkjam/funpy
def reduce(f, xs):
    if not xs:
        return 0
    else:
        return f(head(xs), reduce(f, tail(xs)))
예제 #5
0
파일: recursive.py 프로젝트: drkjam/funpy
def filter(p, xs):
    if not xs:
        return []
    else:
        return [head(xs)] + filter(p, tail(xs)) if p(head(xs)) else filter(p, tail(xs))
예제 #6
0
파일: recursive.py 프로젝트: drkjam/funpy
def map(f, xs):
    if not xs:
        return []
    else:
        return [f(head(xs))] + map(f, tail(xs))
예제 #7
0
파일: recursive.py 프로젝트: drkjam/funpy
def reverse(xs):
    if not xs:
        return []
    else:
        return reverse(tail(xs)) + [head(xs)]
예제 #8
0
파일: recursive.py 프로젝트: drkjam/funpy
def product(xs):
    if not xs:
        return 1
    else:
        return head(xs) * product(tail(xs))
예제 #9
0
파일: recursive.py 프로젝트: drkjam/funpy
def sum(xs):
    if not xs:
        return 0
    else:
        return head(xs) + sum(tail(xs))
예제 #10
0
파일: foldable.py 프로젝트: drkjam/funpy
def foldr(f, v, xs):
    if not xs:
        return v
    else:
        return f(head(xs), foldr(f, v, tail(xs)))