6. Operadores
No debemos olvidar que en Clojure todo son funciones. Y no estoy siendo metafórico: todo es todo. Incluyendo operaciones aritméticas como puede ser una sencilla suma.
(+ 1 3)
El nombre de la función es + y sus argumentos 1 y 3, dando como resultado 4.
Por supuesto puedo incluir tantos argumentos como necesitemos.
(+ 1 2 3 4)
; 10
Equivalente a 1 + 2 + 3 + 4.
Los más comunes son:
+ ; Suma
- ; Resta
* ; Multiplicar
/ ; Dividir
Por ejemplo, si quisiera dividir 10 entre 2.
(/ 10 2)
A la hora de controlar el flujo, o utilizar varios operadores, mis funciones deben ir llamándose en el orden deseado. ¿Cómo podría calcular (8 - 4) * (100 / 50)?
(* (- 8 4) (/ 100 50))
Parece lioso, y estás en lo cierto. No obstante, en cuanto interiorizas que todo son funciones devolviendo un valor, u otras funciones, las tinieblas se disipan y la duda se torna vergüenza al entender la sencillez del paradigma. Mientras tanto estarás pensando: es mucho más sencillo en [ingrese aquí el nombre de un lenguaje orientado a objetos]. Y no te falta razón, al menos con lo que te han enseñado hasta ahora. Sigamos desaprendiendo.
Ayudas
Disponemos de una extensa lista con funciones para apoyarnos a la hora de realizar operaciones. Juguemos con las principales.
Resto
rem
Resto de dividir 4 entre 3.
(rem 4 3)
; 1
Incrementar
inc
Equivalente a sumar 1.
(inc 7)
; 8
Decrementar
Equivalente a restar 1.
dec
(dec 7)
; 6
Número más alto
max
Obtiene el número con el valor más alto.
(max 20 80 30)
; 80
Número más bajo
min
Obtiene el número con el valor más bajo.
(min 20 80 30)
; 20
Números aleatorios
rand
Si queremos obtener un número con decimales entre el 0 y el 1.
(rand)
; 0.9549519629831112
En cambio si queremos que el rango sea superior a 1 deberemos darle el parámetro que limitará su tope.
(rand 100)
; 78.69546216747631
En caso de no necesitar decimales, podemos usar rand-int.
(rand-int 100)
; 67
Resumen
-
Los operadores son funciones.
-
Disponemos de multitud de ayudas.
Ejercicios
-
Clojure apareció en el 2007. Calcula cuántos años han pasado.
-
Encuentra el número más pequeño en la siguiente lista: 40, 35, 16 y 30.
-
Obtén un número aleatorio entre 0 y 2000. A continuación divídelo entre 2.
-
Obtén un número aleatorio entre el 5 y 10.
Este trabajo está bajo una licencia Attribution-NonCommercial-NoDerivatives 4.0 International.
Apóyame en Ko-fi