Literals There are three types of literal constant - numerals, character constants, and string constants. Numerals are written in the following style 12 5237563 24.6 4.5e13 0.63e-6 A numeral containing either a decimal point or a scale factor (`.' or `e') is fractional, and is stored internally as double precision floating point (accuracy approximately 17 decimal digits). Integers are held in a different internal representation, and have unbounded precision. The two kinds of number, integer and fractional, are both of type `num', as far as the type-checker is concerned, and can be freely mixed in calculations. There is automatic conversion from integer to fractional when required, but not in the opposite direction. To convert from fractional to integer, use `entier' (see standard environment). Negative numbers are denoted by applying the prefix `-' operator to a numeral, thus: -12 -4.5e13 but note that the notation -12 is an expression, not a literal, so if you wish to apply a function to it, you must write f (-12), not f -12, which would be read as an attempt to subtract 12 from f. Character constants are written using single quotes, thus 'a' '0' '\n' String constants are written using double quotes, thus "hello dolly" "" "\n\n\n" Escape conventions in character and string constants are as in `C', using the backslash character. \n newline \t tab \f formfeed \r carriage return \b backspace \\ the backslash character itself \' single quote \" double quote \ddd up to three decimal digits, arbitrary ascii character code Note that literal newlines are not allowed inside character or string quotes, unless escaped by backslash, in which case the newline is ignored. Thus "hello \ dolly" means the same as "hello dolly". These conventions are exactly as in `C', except that we use decimal rather than octal for numeric specification of an arbitrary ascii character code (the use of octal numbers in computing now seems a curious anachronism which there is no need to perpetuate).