Plan 9 from Bell Labs’s /usr/web/sources/contrib/fgb/root/sys/src/cmd/4th/lib/figures.4th

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


\ 4tH library - English figures - Copyright L.G. Lisle, J.L. Bezemer
\ You can redistribute this file and/or modify it under
\ the terms of the GNU General Public License

[UNDEFINED] .ORDINAL [IF]
: .number cells + @c count type ;

create .crd
  ," zero"
  ," one"
  ," two"
  ," three"
  ," four"
  ," five"
  ," six"
  ," seven"
  ," eight"
  ," nine"
  ," ten"
  ," eleven"
  ," twelve"
  ," thirteen"
  ," fourteen"
  ," fifteen"
  ," sixteen"
  ," seventeen"
  ," eighteen"
  ," nineteen"

:this .crd does> swap .number ;

create .tens
  ," twenty"
  ," thirty"
  ," forty"
  ," fifty"
  ," sixty"
  ," seventy"
  ," eighty"
  ," ninety"
  ," hundred"
  ," thousand"

:this .tens does> swap 1- 1- .number ;
                                       \ unsigned numbers, smaller than 110
: .cardinal                            ( n --)
  dup 19 >
  if 10 /mod .tens space then dup
  if .crd space else drop then
;

: .th
  dup 
  if 100 /mod dup if .cardinal 10 .tens space else drop then .cardinal
  else drop
  then
;

: .eng
  dup 1999 >
  if 1000 /mod .th 11 .tens space then .th
;
                                       \ signed numbers, smaller than 1,000,000
: .english                             ( n --)
  dup 0<
  if ." minus " abs then dup
  if .eng else .crd space then
;

create .ord
  ," first"
  ," second"
  ," third"
  ," fourth"
  ," fifth"
  ," sixth"
  ," seventh"
  ," eighth"
  ," ninth"
  ," tenth"
  ," eleventh"
  ," twelfth"
  ," thirteenth"
  ," fourteenth"
  ," fifteenth"
  ," sixteenth"
  ," seventeenth"
  ," eighteenth"
  ," nineteenth"

:this .ord does> swap 1- .number space ;

create .10ord
  ," twen"
  ," thir"
  ," for"
  ," fif"
  ," six"
  ," seven"
  ," eigh"
  ," nine"

:this .10ord does> swap 1- 1- .number ." tieth " ;
                                       \ unsigned numbers, smaller than 100
: .ordinal                             ( n --)
  dup 20 <
  if .ord
  else 10 /mod swap dup if swap .tens .ord else drop .10ord then
  then
;

[DEFINED] 4TH# [IF]
hide .number
hide .crd
hide .tens
hide .th
hide .eng
hide .ord
hide .10ord
[THEN]
[THEN]

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].