procedure main(A) n := integer(A[1]) | 37 write(right("N",4)," ",right("length",15)," ",left("Entrophy",15)," ", " Fibword") every w := fword(i := 1 to n) do { writes(right(i,4)," ",right(*w,15)," ",left(H(w),15)) if i <= 8 then write(": ",w) else write() } end procedure fword(n) static fcache initial fcache := table() /fcache[n] := case n of { 1: "1" 2: "0" default: fword(n-1)||fword(n-2) } return fcache[n] end procedure H(s) P := table(0.0) every P[!s] +:= 1.0/*s every (h := 0.0) -:= P[c := key(P)] * log(P[c],2) return h end