Menu
CoddyTech

Funciones lambda, parte 1

Parte de la sección Lógica y flujo del Journey de GDScript de Coddy. Lección 54 de 78.

Una lambda es una función sin nombre, escrita como un valor. Puedes almacenarla en una variable como un número o una cadena:

var add = func(a, b): return a + b

Empieza con func, los parámetros y dos puntos, como cualquier función, pero no tiene nombre. El cuerpo de una sola instrucción puede permanecer en la misma línea.

Para ejecutar una lambda almacenada en una variable, llama a su método call() con los argumentos:

print(add.call(5, 3))
8

add(5, 3) no funciona: GDScript busca una función llamada add en el script e informa Function "add()" not found antes de que se ejecute el programa.

Una lambda más larga tiene un bloque con sangría. Como cualquier función, necesita return para devolver un valor:

var greet = func(player_name):
	var message = "Hello, " + player_name
	return message + "!"
print(greet.call("Ana"))
Hello, Ana!

Una lambda sin return devuelve null, así que func(n): n * 2 calcula el valor y lo descarta.

Los parámetros y el resultado pueden tener tipos: func(n: int) -> int: return n * 2. El valor de una lambda es un Callable, el tipo de GDScript para «algo que puedes llamar».

challenge icon

Desafío

Fácil

El programa lee tres números enteros, a, b y c.

  1. Crea una lambda con tres parámetros, x, y y z, que devuelva su producto, y guárdala en una variable llamada multiply.
  2. Llámala con a, b y c e imprime el resultado.

Para las entradas 2, 3 y 4, la salida es:

24

Pruébalo tú mismo

extends Node

func _ready():
	var a := int(OS.read_string_from_stdin())
	var b := int(OS.read_string_from_stdin())
	var c := int(OS.read_string_from_stdin())
	# Crea la función lambda multiply aquí

	# Llama a multiply con a, b y c, e imprime el resultado
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de GDScript online