Números


Los números pueden ser de los siguientes tipos:

Enteros
Positivos o negativos, con número arbitrario de dígitos. Ej: 6, -8, 45578998554254894.
Fracciones
Fracciones con numerador números enteros. Ej: 5/6, -8/7, 5487451/985421478.
Decimales de simple precisión
Son decimales con punto decimal, se utiliza e como exponente marcador. Ej: 2.358, 0.25e30.
Decimales de doble precisión
Son decimales con punto decimal, se utiliza d como exponente marcador. Ej: 2.358d0, 25.987421548796533d0.
Complejos
Números complejos que se escriben en formato #c(a b), siendo a y b las partes real e imaginaria, respectivamente, las cuales pueden ser números enteros, fraccionarios o decimales de simple o doble precisión. Ej: #c(3 3), #c(2/9 2.87e15).
Números en base binaria
Precedidos por #b. Ej: #b01011, #b111/101, #b-11.
Números en base octal
Precedidos por #o. Ej: #o345, #o34/126, #o-57, #c(#b101 #o345).
Números en base hexadecimal
Precedidos por #x. Ej: #x9a, #x9/f, #x-2f5c.
Números en base 2 a 36
Precedidos por #nr, siendo n un entero entre 2 y 36, y utilizando los dígitos decimales y el abecedario de a a z. Ej: #36rv5y.

+

;; Suma entero con decimal y devuelve decimal
(+ 2 3.0)
5.0
;; Suma de fracciones
(+ 5/8 6/18 987/8547124)
49151885/51282744
;; Suma de números decimales con diferente precisión
(+ 23.501e20 6354.457851457d23)
6.354481352457235d26
;; Suma de números reales y complejos,
;; en diferentes bases
(+ 2.25 #x-5d85e7 #c(2.58 #b011) #c(0 2358))
#C(-6129122.5 2361.0)
;; Suma de número complejo con parte imaginaria entera nula
;; Devuelve en forma entera
(+ 7 #c(5 0))
12
;; Suma de número complejo con parte imaginaria decimal nula
;; Devuelve en forma compleja
(+ 7 #c(5 0.0))
#C(12.0 0.0)

1+

;; Suma uno a número decimal
(1+ 2.5)
3.5
;; Suma uno a fracción
(1+ -5/8)
3/8
;; Suma uno a número complejo
(1+ #c(5 5.2))
#C(6.0 5.2)

-

(- 8 5)
3
(- 56 1 1 1 1 1 1)
50
(- -69)
69
;; Resta de números expresados en bases diferentes
(- #b0101011 #o4567)
-2380

1-

;; Resta uno a número decimal
(1- 2.5)
1.5
;; Resta uno a fracción
(1- -5/8)
-13/8
;; Resta uno a número complejo
(1- #c(5 5.2))
#C(4.0 5.2)

*

(* 536.2568d0 2 3.0)
3217.5407999999998d0
(* (+ 5 1/3) 6/7)
32/7
;; Multiplica complejos con partes fraccionarias
(* #c(2/369 24) #c(5/87 5/7))
#C(-3852290/224721 103610/74907)

/

;; Reduce cociente de enteros a fracción
(/ 32 20)
8/5
;; Debido a efecto contagio devuelve decimal
(/ 32 20.0)
1.6
(/ 8 2 2)
2
(/ -69)
-1/69

incf

(let ((x 6))
  (incf x 5)
  x)
11
(let ((x 6))
  (incf x)
  x)
7

decf

(let ((x 6))
  (decf x 5)
  x)
1
(let ((x 6))
  (decf x)
  x)
5

floor

;; Devuelve la parte entera y decimal
(floor 6.9)
6
0.9000001
(floor -6.9)
-7
0.099999905

ffloor

;; Devuelve la parte entera y decimal
(ffloor 6.9)
6.0
0.9000001
(ffloor -6.9)
-7.0
0.099999905

truncate

;; Devuelve la parte entera y decimal
(truncate 6.9)
6
0.9000001
(truncate -6.9)
-6
-0.9000001

ftruncate

;; Devuelve la parte entera y decimal
(ftruncate 6.9)
6.0
0.9000001
(ftruncate -6.9)
-6.0
-0.9000001

ceiling

;; Devuelve la parte entera y decimal
(ceiling 6.9)
7
-0.099999905
(ceiling -6.9)
-6
-0.9000001

fceiling

;; Devuelve la parte entera y decimal
(fceiling 6.9)
7.0
-0.099999905
(fceiling -6.9)
-6.0
-0.9000001

round

;; Devuelve la parte entera y decimal
(round 6.1)
6
0.099999905
(round 6.5)
6
0.5
(round 6.9)
7
-0.099999905

fround

;; Devuelve la parte entera y decimal
(fround 6.1)
6.0
0.099999905
(fround 6.5)
6.0
0.5
(fround 6.9)
7.0
-0.099999905

mod

(mod -15 4)
1

rem

(rem -15 4)
-3

rational

(rational 0.333333333333)
11184811/33554432

rationalize

(rationalize 0.333333333333)
1/3

=

(= 5 5.0 #c(5 0) 10/2)
T
(= 0 1)
NIL

/=

(/= 5 4 3)
T
;; Números iguales
(/= 5 5.0)
NIL

<

(< 1 2 3 4)
T
(< 1 2 2 4)
NIL

>

(> 1 2)
NIL

<=

(<= 2 2)
T

>=

(>= 5 4 3 2 2 0)
T

zerop

(zerop 0.0)
T
(zerop #c(0 0))
T
;; Cero en base 5
(zerop #5r0)
T

minusp

(minusp 0)
NIL
(minusp #o-567)
T

plusp

(plusp -8)
NIL

evenp

(evenp -8)
T

oddp

(oddp 90)
NIL

max

(max 5 3 2 7 4 15 -20)
15

min

(min 5 3 2 7 4 15 -20)
-20

gcd

(gcd 450 200 175)
25

lcm

(lcm 450 200 175)
12600

numerator

(numerator 3/5)
3

denominator

(denominator 3/5)
5

complex

(complex 5 9)
#C(5 9)

conjugate

(conjugate #c(1 2))
#C(1 -2)

realpart

(realpart #c(7 6))
7

imagpart

(imagpart #c(7 6))
6

float

(float 2)
2.0
(float 3/7)
0.42857143

abs

(abs -2)
2
(abs #c(1 2))
2.236068

sqrt

(sqrt 5)
2.236068
(sqrt -5)
#C(0.0 2.236068)

isqrt

(isqrt 5)
2

exp

(exp 5)
148.41316
;; Exponencial de 1+i
(exp #c(1 1))
#C(1.4686939 2.2873552)

expt

(expt 5 3)
125
;; Base y exponente en diferentes bases numéricas
(expt #o7 #b11)
343

log

;; Logaritmo en base 4 de 3.
(log 3 4)
0.79248124
;; Logaritmo natural de 2.
(log 2)
0.6931472

sin

;; Seno de pi.
;; La constante pi se almacena en Lisp en formato 
;; doble precisión (3.141592653589793d0).
(sin pi)
1.2246467991473532d-16

cos

;; Coseno de pi.
(cos pi)
-1.0d0

tan

;; Tangente del ángulo pi/2.
;; La constante pi se almacena en Lisp en formato 
;; doble precisión (3.141592653589793d0).
(tan (/ pi 2))
1.633123935319537d16

asin

(asin 0.5)
0.5235988

acos

(acos 0.5)
1.0471976

atan

(atan 7.2)
1.4327903
(atan 2 3)
0.5880026

sinh

(sinh 2)
3.6268604

cosh

(cosh 2)
3.7621956

tanh

(tanh 2)
0.9640276

asinh

(asinh 2)
1.4436355

acosh

(acosh 2)
1.316958

atanh

(atanh 0.5)
0.54930615

© 2016, TecnoStats