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

  1. Clojure apareció en el 2007. Calcula cuántos años han pasado.

  2. Encuentra el número más pequeño en la siguiente lista: 40, 35, 16 y 30.

  3. Obtén un número aleatorio entre 0 y 2000. A continuación divídelo entre 2.

  4. Obtén un número aleatorio entre el 5 y 10.

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Will you buy me a coffee?

Visitors in real time

You are alone: 🐱