Funciones

Las funciones sirven para reutilizar bloques de código sin tener que escribirlos nuevamente.

Declaración#

Se declaran escribiendo dos puntos : seguidos del nombre de la función.

:nombre_de_función
  instrucciones
Indentación

Las instrucciones deben tener más margen izquierdo que la línea del :.

Función básica#

# Función:
:caratula
  print "-------------------------"
  print "Bienvenido a DinoCode 🦖 "
  print "-------------------------"
  
# Llamada:
caratula
caratula
caratula  # Se imprimirá 3 veces
¿Cómo funciona?

Las funciones son como coordenadas. Cada vez que llamas a una función, DinoCode sabe exactamente a donde ir y que ejecutar.

caratula  # DinoCode salta al código dentro de caratula

Parámetros#

Una misma función puede trabajar con distintos datos. Solo debes definir los parámetros que puede recibir.

:saludar nombre
  print "¡Hola $nombre!"

saludar "Ismael"
saludar "Jessy"

Retorno de valores#

Puedes usar una función para procesar tus datos y devolver un resultado usando return.

:area_triangulo base altura
  return base * altura / 2

print "base 10, altura 5 = " area_triangulo(10 5)
print "base 20.5, altura 5.5 = " area_triangulo(20.5 5.5)
Procedimientos

Una función sin return se llama procedimiento porque no devuelve un valor.

Llamadas en expresiones#

DinoCode permite omitir delimitadores, pero solo cuando el contexto es claro. Este contexto se vuelve confuso (incluso para humanos) en ciertos escenarios.

:suma a b
  return a + b

# No se requieren paréntesis
suma 10 5

# Sí se requieren: Estilo clásico
print suma(10 5)

# Sí se requieren: Estilo dólar
print $(suma 10 5)
Inferencia

Para entender por qué se requieren o se omiten delimitadores según el contexto, revisa la sección de Delimitadores implícitos.

Funciones como variables#

En DinoCode puedes asignar funciones a variables y luego ejecutarlas usando el nuevo nombre.

:saludar nombre
  print "¡Hola $nombre!"

mi_funcion = saludar
mi_funcion "Ismael"