예제 #1
0
def maybe_quote(quote_some, x):
    x = maybe_type(x)
    return app(
        x,
        QUOTE(none),
        lambda y: qapp(quote(some), app(quote_some, y)),
    )
예제 #2
0
def enum_contains(qxs, qy):
    return app(LESS, qapp(quote(box), qy), qxs)
예제 #3
0
def list_quote(quote_item, xs):
    return app(
        xs,
        QUOTE(nil),
        lambda h, t: qapp(quote(cons), app(quote_item, h), list_quote(t)),
    )
예제 #4
0
def num_quote(x):
    return app(x, QUOTE(zero), lambda px: qapp(quote(succ), num_quote(px)))
예제 #5
0
def sum_quote(quote_inl, quote_inr, xy):
    return app(
        xy,
        lambda x: qapp(quote(inl), app(quote_inl, x)),
        lambda y: qapp(quote(inr), app(quote_inr, y)),
    )
예제 #6
0
def prod_quote(quote_fst, quote_snd, xy):
    return app(
        xy,
        lambda x, y: qapp(quote(pair), app(quote_fst, x), app(quote_snd, y)),
    )
예제 #7
0
파일: lib.py 프로젝트: fritzo/pomagma
def qfix(qf):
    return EVAL(qf, qapp(quote(qfix), qf))
예제 #8
0
파일: lib.py 프로젝트: fritzo/pomagma
def enum_contains(qxs, qy):
    return QLESS(qapp(quote(box), qy), qxs)
예제 #9
0
파일: lib.py 프로젝트: fritzo/pomagma
def stream_quote(quote_item, xs):
    return xs(lambda h, t: qapp(QUOTE(stream_cons),
                                quote_item(h),
                                stream_quote(quote_item, t)))
예제 #10
0
파일: lib.py 프로젝트: fritzo/pomagma
def list_quote(quote_item, xs):
    return xs(QUOTE(nil), lambda h, t:
              qapp(quote(cons), quote_item(h), list_quote(t)))
예제 #11
0
파일: lib.py 프로젝트: fritzo/pomagma
def sum_quote(quote_inl, quote_inr, xy):
    return xy(lambda x: qapp(quote(inl), quote_inl(x)),
              lambda y: qapp(quote(inr), quote_inr(y)))
예제 #12
0
파일: lib.py 프로젝트: fritzo/pomagma
def prod_quote(quote_fst, quote_snd, xy):
    return xy(lambda x, y: qapp(quote(pair), quote_fst(x), quote_snd(y)))
예제 #13
0
파일: lib.py 프로젝트: fritzo/pomagma
def maybe_quote(quote_some, x):
    x = maybe_type(x)
    return x(QUOTE(none), lambda y: qapp(quote(some), quote_some(y)))