racket/collects/honu/examples/exprs.honu
Stevie Strickland 7dbb99d3c6 merged 292:296 from branches/sstrickl
svn: r297
2005-07-02 04:03:02 +00:00

48 lines
774 B
Plaintext

int fact(int n) {
if (n == 0) { return 1; }
else { return n * fact(n - 1); };
}
<int, int> divrem(int x, int y) {
(int a, int b) = (x / y, x % y);
return (a, b);
}
int impfact(int n) {
int ret = 1;
while(n > 1) {
ret = ret * n;
n = n - 1;
};
return ret;
}
int factacc(int n, int a) {
if (n == 0) { return a; }
else { return factacc(n - 1, n * a); };
}
int fact2(int n) {
return factacc(n, 1);
}
int fib_h(int n, int a, int b) {
if(n == 0) { return a; }
else { return fib_h(n - 1, b, a + b); };
}
int fib(int n) {
return fib_h(n, 0, 1);
}
<int, int> fibfact(int n) {
return (fib(n), fact(n));
}
void printFibUpTo(int n) {
int x = 0;
while(x < n) {
printLine(intToString(fib(x)));
x = x + 1;
};
}