ty.fun 942 B

123456789101112131415161718192021222324252627282930313233
  1. #import std
  2. #import nat
  3. #import tag
  4. #import flo
  5. #binary+
  6. v =
  7. ~&iNC type_constructor[
  8. mnemonic: 'v',
  9. microcode: ~&rhPNVlCrtPX,
  10. printer: ~&r; ~&iNC+ math..isinfinite?l(
  11. math..isinfinite?r('0+-inf'!,--'-inf'+ ~&h+ %eP+ ~&r),
  12. math..isinfinite?r(
  13. --'+inf'+ ~&h+ %eP+ ~&l,
  14. ^|T(~&,'+-'--)+ (~&h+ %eP+ div\2.)^~/plus bus)),
  15. reader: ~&L; -?
  16. (=='0+-inf'): (ninf,inf)!,
  17. substring/'+-': -+
  18. math..strtod~~; ~&rllXG; ^|/bus plus,
  19. (`+,`-)^?=ahthPX/~&Natt2X ~&ahPfatPRXlrlPCrrPX+-,
  20. suffix/'-inf': ~&/ninf+ math..strtod+ ~&xttttx,
  21. suffix/'+inf': ~&\inf+ math..strtod+ ~&xttttx,
  22. <'bad interval'>!%?-,
  23. recognizer: ! ~&i&& &&fleq both %eI,
  24. precognizer: ! ~&i&& both %eI,
  25. initializer: ! ~&?\(ninf,inf)! ~&l?(
  26. ~&r?/(fleq?/~& ~&rlX) ~&\inf+ ~&l,
  27. ~&/ninf!+ ~&r),
  28. help: 'push primitive interval type',
  29. generator: ! &?=/&! fleq?(~&,~&rlX)+ 0%eWi]