zahlwort.l (1411B)
1 # 26may06abu 2 # (c) Software Lab. Alexander Burger 3 4 (de zahlwort (N) 5 (cond 6 ((not N)) 7 ((=0 N) "null") 8 ((lt0 N) (pack "minus " (zahlw (- N)))) 9 (T (zahlw N)) ) ) 10 11 (de zahlw (N Flg) 12 (cond 13 ((=0 N)) 14 ((= 1 N) (if Flg "ein" "eins")) 15 ((= 2 N) "zwei") 16 ((= 3 N) "drei") 17 ((= 4 N) "vier") 18 ((= 5 N) "fünf") 19 ((= 6 N) "sechs") 20 ((= 7 N) "sieben") 21 ((= 8 N) "acht") 22 ((= 9 N) "neun") 23 ((= 10 N) "zehn") 24 ((= 11 N) "elf") 25 ((= 12 N) "zwölf") 26 ((= 17 N) "siebzehn") 27 ((> 20 N) 28 (pack (zahlw (% N 10) T) "zehn") ) 29 ((> 100 N) 30 (pack 31 (unless (=0 (% N 10)) 32 (pack (zahlw (% N 10) T) "und") ) 33 (get 34 (quote 35 "zehn" "zwanzig" "dreissig" "vierzig" "fünfzig" 36 "sechzig" "siebzig" "achtzig" "neunzig" ) 37 (/ N 10) ) ) ) 38 ((> 1000 N) 39 (pack 40 (zahlw (/ N 100) T) 41 "hundert" 42 (zahlw (% N 100)) ) ) 43 ((> 1000000 N) 44 (pack 45 (zahlw (/ N 1000) T) 46 "tausend" 47 (zahlw (% N 1000)) ) ) 48 ((> 2000000 N) 49 (pack "einemillion" (zahlw (% N 1000000))) ) 50 ((> 1000000000000 N) 51 (pack 52 (zahlw (/ N 1000000) T) 53 "millionen" 54 (zahlw (% N 1000000)) ) ) 55 (T "RIESIG") ) )