Exemplo n.º 1
0
def zerop(vals):
    for v in kt.iter_list(vals):
        # Robustness: we need to check the type of all elements, even those
        # after the first non-zero.
        kt.check_type(v, kt.Number)
    for v in kt.iter_list(vals):
        if not kt.zero.equal(v):
            return kt.false
    return kt.true
Exemplo n.º 2
0
def string_append(vals):
    s = rstring.StringBuilder()
    for v in kt.iter_list(vals):
        kt.check_type(v, kt.String)
        assert isinstance(v, kt.String)
        s.append(v.strval)
    return kt.String(s.build())
Exemplo n.º 3
0
def print_(val):
    if isinstance(val, kt.Pair):
        for v in kt.iter_list(val):
            print v.todisplay(),
    else:
        assert kt.is_nil(val)
    return kt.inert
Exemplo n.º 4
0
def add(vals):
    accum = kt.Fixnum(0)
    for v in kt.iter_list(vals):
        kt.check_type(v, kt.Number)
        assert isinstance(v, kt.Number)
        accum = accum.add(v)
    return accum
Exemplo n.º 5
0
def negative(vals):
    for v in kt.iter_list(vals):
        kt.check_type(v, kt.Number)
        assert isinstance(v, kt.Number)
        if not v.lt(kt.zero):
            return kt.false
    return kt.true
Exemplo n.º 6
0
def positive(vals):
    for v in kt.iter_list(vals):
        kt.check_type(v, kt.Number)
        assert isinstance(v, kt.Number)
        if not kt.zero.lt(v):
            return kt.false
    return kt.true
Exemplo n.º 7
0
def mul(vals):
    accum = kt.one
    for v in kt.iter_list(vals):
        kt.check_type(v, kt.Number)
        assert isinstance(v, kt.Number)
        accum = accum.mul(v)
    return accum
Exemplo n.º 8
0
def lteq(vals):
    latest = kt.e_neg_inf
    for v in kt.iter_list(vals):
        kt.check_type(v, kt.Number)
        assert isinstance(v, kt.Number)
        if not latest.lt(v):
            return kt.false
        latest = v
    return kt.true
Exemplo n.º 9
0
def gt(vals):
    latest = kt.e_pos_inf
    for v in kt.iter_list(vals):
        kt.check_type(v, kt.Number)
        assert isinstance(v, kt.Number)
        if not v.lt(latest):
            return kt.false
        latest = v
    return kt.true
Exemplo n.º 10
0
 def pred(vals):
     for val in kt.iter_list(vals):
         if not isinstance(val, cls):
             return kt.false
     return kt.true
Exemplo n.º 11
0
def check_guards(guards):
    for guard in kt.iter_list(guards):
        selector, interceptor = kt.pythonify_list(guard)
        kt.check_type(selector, kt.Continuation)
        kt.check_type(interceptor, kt.Applicative)
        kt.check_type(interceptor.wrapped_combiner, kt.Operative)