# fib.cf v1.0 # # Fibonacci number calculator plus other arithmetic helper routines in sendmail.cf # (c) 2006 Christos Ricudis # # Append this to your sendmail.cf and run : # # $ sendmail -C /tmp/sendmail.cf -bt -v # ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) # Enter
# > fibonacci 6 # # for a test. # # All numbers should be entered with tokenized digits (e.g. 1 9 2 instead of 192) # # Email me to obtain the unobfuscated version with long ruleset names, or try to # imagine yourself what they do. # Sstriptailzero R0 $+ $1 Srev R$- $- $@ $2 $1 R$+ $- $@ $2 $>rev $1 Sadddigit R$@ $@ 1 R0 $* $@ 1 $1 R1 $* $@ 2 $1 R2 $* $@ 3 $1 R3 $* $@ 4 $1 R4 $* $@ 5 $1 R5 $* $@ 6 $1 R6 $* $@ 7 $1 R7 $* $@ 8 $1 R8 $* $@ 9 $1 R9 $* $@ 0 $>adddigit $1 Saddone R0 $@ 1 R$+ $: $> striptailzero $1 R$+ $: $> rev $1 R$- $* $: $> adddigit $1 $2 R$+ $: $> rev $1 Ssubdigit R0 $@ paratas mas de Re R1 $* $@ 0 $1 R2 $* $@ 1 $1 R3 $* $@ 2 $1 R4 $* $@ 3 $1 R5 $* $@ 4 $1 R6 $* $@ 5 $1 R7 $* $@ 6 $1 R8 $* $@ 7 $1 R9 $* $@ 8 $1 R0 $* $@ 9 $>subdigit $1 Ssubone R$+ ! $+ $: $2 ! $>subone $1 R$+ ! $+ $@ $2 ! $1 R$+ $: $> rev $1 R$- $* $: $> subdigit $1 $2 R$+ $: $> rev $1 R$+ $: $> striptailzero $1 Scounttozero R$* . 0 $@ $1 R$* . $* $> counttozero @ $1 . $> subone $2 Scount R$* $: . $1 R$+ ! $+ $: $2 ! $>counttozero $1 R$+ ! $+ $@ $2 ! $1 R$+ $@ $>counttozero $1 Senumeratetozero R. $* $@ $1 R@ $* . $* $> enumeratetozero $1 . $> addone $2 Senumerate R$* $: $1 . 0 R$+ $@ $> enumeratetozero $1 Saddition R$* . $* $: $> count $1 ! $> count $2 R$* ! $* $@ $> enumerate $1 $2 Sfibonacci R0 $@ 0 R1 $@ 1 R$+ & $+ $: $2 & $>fibonacci $1 R$+ & $+ $@ $2 & $1 R$+ $: $> subone $>subone $1 ! $>subone $1 R$+ ! $+ $: $> fibonacci $1 & $> fibonacci $2 R$+ & $+ $: $> addition $1 . $2