@@ -5,25 +5,26 @@ \section{Data Types}
5
5
Any variable can have any object as its value.
6
6
Of course, it is possible to
7
7
declare the type of object which is bound to a variable, but in many cases
8
- it is only advisary information to the compiler to generate faster code.
8
+ it is only advisory information to the compiler to generate faster code.
9
9
In EusLisp, it needs to distinguish pointers and objects.
10
10
Numbers are immediately represented by pointers and all the others
11
- are represented by ojbects referenced by pointers.
11
+ are represented by objects referenced by pointers.
12
12
13
13
\subsection {Numbers }
14
14
15
15
There are two kinds of numbers, that is,
16
16
integer and float (floating-point number), both are represented
17
17
with 29 bits value and 1 bit sign.
18
- Thus, intergers range from -536,870,912 to 536,870,911.
19
- Floatings can represent plus/minus from 4.8E-38 to 3.8E38 with the
18
+ Thus, integers range from -536,870,912 to 536,870,911.
19
+ Floats can represent plus/minus from 4.8E-38 to 3.8E38 with the
20
20
approximate accuracy of 6 digits in decimal, i.e.,
21
21
floating-point epsilon is about 1/1,000,000.
22
22
23
- Numbers are always represented by pointers, and not by objects,
24
- this is the only exception of EusLisp's object orientation.
23
+ Integer and float numbers are always represented by pointers, and not by objects,
24
+ which is the only exception of EusLisp's object orientation.
25
25
However, since numbers never waste heap memory, number crunching application
26
26
runs efficiently without causing garbage collection.
27
+ Other number types such as ratio and complex numbers are normal EusLisp objects.
27
28
28
29
EusLisp does not have the character type,
29
30
and characters are represented by integers.
0 commit comments