コード例 #1
0
ファイル: s3_ex2_1.py プロジェクト: zhou-zhenyi/sicp
def make_rat(n, d):
    # return cons(n, d)
    g = gcd(abs(n), abs(d))

    sign = 1

    if n < 0 and d >= 0 or d < 0 and n >= 0:
        sign = -1

    return cons(int(abs(n / g) * sign), int(abs(d / g)))
コード例 #2
0
ファイル: util_interval.py プロジェクト: zhou-zhenyi/sicp
def make_interval(a, b):
    return cons(a, b)
コード例 #3
0
ファイル: s5_ex2_2.py プロジェクト: zhou-zhenyi/sicp
def make_segment(start, end):
    return cons(start, end)
コード例 #4
0
ファイル: s5_ex2_2.py プロジェクト: zhou-zhenyi/sicp
def midpoint_segment(segment):
    return cons(
        average(x_point(start_segment(segment)),
                x_point(end_segment(segment))),
        average(y_point(start_segment(segment)),
                y_point(end_segment(segment))))
コード例 #5
0
ファイル: s5_ex2_2.py プロジェクト: zhou-zhenyi/sicp
def make_point(x, y):
    return cons(x, y)
コード例 #6
0
def make_rectangle_2(left_top, x, y):
    return cons(left_top,
                make_point(x_point(left_top) + x,
                           y_point(left_top) - y))
コード例 #7
0
def make_rectangle(left_top, right_bottom):
    return cons(left_top, right_bottom)
コード例 #8
0
def append(list1, list2):
    if null(list1):
        return list2

    return cons(car(list1), append(cdr(list1), list2))
コード例 #9
0
from util_pair import cons, car, cdr, list, null, print_list

x = cons(1, cons(2, cons(3, cons(4, None))))
print_list(x)


def list_ref(items, n):
    if (n == 0):
        return car(items)

    return list_ref(cdr(items), n - 1)


squares = list([1, 4, 9, 16, 25])
print(list_ref(squares, 3))


def length(items):
    if (null(items)):
        return 0

    return 1 + length(cdr(items))


odds = list([1, 3, 5, 7])
print(length(odds))


def append(list1, list2):
    if null(list1):
        return list2
コード例 #10
0
def make_rat(n, d):
    # return cons(n, d)
    g = gcd(n, d)
    
    return cons(int(n / g), int(d / g))
コード例 #11
0
ファイル: s1_sequence.py プロジェクト: zhou-zhenyi/sicp
from util_pair import cons, car, cdr, list, print_list

x = cons(1, cons(2, cons(3, cons(4, None))))
print_list(x)

one_through_four = list([1, 2, 3, 4])
print_list(one_through_four)
print(car(one_through_four))
print_list(cdr(one_through_four))
print(car(cdr(one_through_four)))
print_list(cons(10, one_through_four))
print_list(cons(5, one_through_four))
コード例 #12
0
ファイル: s4_barriers.py プロジェクト: zhou-zhenyi/sicp
def make_rat(n, d):
    return cons(n, d)