[fib] ps char b(0) [int l;char c;l=-1;while(c=b(++l)) MC c,1 return l ] pl char b(0) [MC 13,1;MC 10,1;ps b ] num char b(0);int v(0) [int k;v(0)=0 while(k<5) [if((b(k)<'0')+(b(k)>'9'))return k v(0)=10*v(0)+b(k)-'0';++k] return k ] pn int n [MC ' ',1;MC n,14 ] atoi char b(0);int v(0) [int k,s;char c;s=1;c=b(0) while((c==' ')+(c=='-')+(c=='+')) [ if(c=='-')s=-1;c=b(++k)] k=k+num(b+k,v);v(0)=s*v(0);return k ] gs char b(0) [return MC b,15 ] gn [char b(20);int v(0) while(1) [gs b;if(atoi b,v)return v(0) ps"number required "] ] endlibrary /* fib.ipl - tct - 4/12/9 /* time ./tinycx fib.ipl;echo dpf int n,d,p [ /* display proper fraction n/d as decimal number /* with p digit precision int w w=10*n/d if (p) [ MC w,14 dpf 10*n%d,d,p-1 /* recursive call ] ] fibf int f [ if (f==0) return 1 if (f==1) return 1 return fibf(f-1)+fibf(f-2) ] fib [ pl "";ps "fib.ipl - tct - 4/12/9";pl "" int f,i,j pl "f? ";f=gn i=fibf(f);j=fibf(f-1) pl "";pn j/i;ps ".";dpf(j,i,14) pl "" pl "compared to ... 0.6180339887 4989484820 ..." pl "" ]