Source de entier-list.py
1: ### implémentation du type abstrait Entier
2: ### avec des listes Python
3:
4: # constructeurs
5:
6: def zero():
7: return []
8:
9: def succ(n):
10: s = list(n)
11: s.append(0)
12: return s
13:
14: def prec(n):
15: p = list(n)
16: p.pop()
17: return p
18:
19: # test
20:
21: def est_nul (n):
22: return (len(n)==0)
23:
24: # affichage
25:
26: def affiche_entier (n):
27: print("cet entier vaut",len(n))
28:
29: ### opérations de haut niveau
30:
31: # addition
32:
33: def plus(n,m):
34: while not est_nul(n):
35: m = succ(m)
36: n = prec(n)
37: return m
38:
39: # multiplication
40:
41: def fois(n,m):
42: s = zero()
43: while not est_nul(n):
44: s = plus(s,m)
45: n = prec(n)
46: return s
47:
48: ### programme principal
49:
50: affiche_entier(succ(succ(zero())))
51:
52: x = succ(succ(zero()))
53: y = succ(succ(succ(zero())))
54:
55: affiche_entier(plus(x,y))
56:
57: affiche_entier(x)
58:
59: affiche_entier(fois(x,y))