From cf4a3935e1614a0428851ad4392340b738e16e2b Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 23 Mar 2012 11:30:35 -0700 Subject: * RELNOTES: Updated. * txr.1: Describe floating-point constants. --- ChangeLog | 6 ++++++ RELNOTES | 36 ++++++++++++++++++++++++++++++++++++ txr.1 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 90 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 034b0fb4..368f5f68 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-03-23 Kaz Kylheku + + * RELNOTES: Updated. + + * txr.1: Describe floating-point constants. + 2012-03-23 Kaz Kylheku * Makefile (TXR_ARGS): Pass new file to tests/009/json.txr test. diff --git a/RELNOTES b/RELNOTES index effe40d2..5c3ead69 100644 --- a/RELNOTES +++ b/RELNOTES @@ -1,3 +1,39 @@ + TXR 62 + 2011-03-23 + + + Features + + - Floating-point support has been added. + - TXR programs can specify floating-point constants. + - Printing floting points is supported in the format function. + - New specifiers: ~f and ~e. + - Arithmetic on floating points, with implicit + conversion. + - New / function which produces a floating-point result. + - New functions like sin, cos, exp, and log. + - Functions for converting between floating and integer, + and parsing a float from a string. + + - New combinators for easier programming with higher order functions: chain, + andf, orf, iff. + + - url_decode and url_encode functions take an optional parameter which + determines whether + is used as the code for space, distinguishing + URL encoding from percent encoding. Separate named filters are + introduced: :frompercent, :topercent distinct from :fromurl and :tourl. + + Bugs + + - Buggy quicksort routine repaired. This is a recently + added feature which allows vectors and strings to be sorted. + List sorting, done by merge sort, is unaffected. + + - Breakpoints can now be set by line number and file name, allowing + breakpoints in loaded modules, not just the main module. + + + TXR 61 2011-03-15 diff --git a/txr.1 b/txr.1 index af743a4b..05608472 100644 --- a/txr.1 +++ b/txr.1 @@ -1075,8 +1075,54 @@ the TXR pattern language when the quasiliteral occurs in the pattern language. .SS Numbers -A number is made up of digits 0 through 9, optionally preceded by a + or - -sign. +TXR supports integers and floating-point numbers. + +An integer constant is made up of digits 0 through 9, optionally preceded by a ++ or - sign. + +Examples: + + 123 + -34 + +0 + -0 + +234483527304983792384729384723234 + +A floating-point constant is marked by the inclusion of a decimal point, the +exponential "e notation", or both. It is an optional sign, followed +by a mantissa consisting of digits, a decimal point, more digits, and then an +optional exponential notation consisting of the letter "e" or "E", an optional +"+" or "-" sign, and then digits indicating the exponent value. +In the mantissa, the digits are not optional. At least one digit must either +precede the decimal point or follow. That is to say, a decimal point by itself +is not a floating-point constant. + +Examples: + + .123 + 123. + 1E-3 + 20E40 + .9E1 + 9.E19 + -.5 + +3E+3 + +Examples which are not floating-point constant tokens: + + . (consing dot) + 123E (the symbol 123E) + 1.0E- (floating point 1.0 followed by symbol E-) + .e (consing dot followed by symbol e) + +In TXR there is a special "dotdot" token consisting of two consecutive periods. +An integer constant followed immediately by dotdot is recognized as such; it is +not treated as a floating constant followed by a dot. That is to say, +123.. does not mean 123. . (floating point 123.0 value followed by dot token). +It means 123 .. (integer 123 followed by .. token). + +Dialect note: unlike in Common Lisp, 123. is not an integer, but the same as +123.0. .SS Comments -- cgit v1.2.3