Skip to content

Asignación

Botlang es un lenguaje funcional, por lo que la asignación de un valor a un identificador es inmutable.

Definición de valores

define

Permite asignar un valor cualquiera a un identificador. La asignación será local a nivel de módulo o bloque, dependiendo de dónde se defina.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
; (define identifier value)

(define x 2)
(define y 3)
(+ x y)
>> 5

(define f
    (function (x) (begin
        (define z 10)
        (+ x z)
    ))
)
(f 1)
>> 11

z
>> Error ; Identificador definido localmente a nivel de la función f.

defun

defun es una macro que facilita la definición de funciones.

Esto se ilustra con un ejemplo:

1
(defun f (a b) (+ a b))

Es equivalente a

1
(define f (function (a b) (+ a b)))