Módulo colecciones — Estructuras de Datos

Archivo: stdlib/std/colecciones.fa

¿Por qué existe?

Provee operaciones avanzadas sobre las estructuras de datos nativas de Forja: arreglos (listas), mapas (diccionarios), y agrega estructuras adicionales como pilas y conjuntos.

Funciones sobre Arreglos

FunciónDescripción
longitud(arr)Retorna la cantidad de elementos
empujar(arr, valor)Agrega un elemento al final (push)
sacar(arr)Quita y retorna el último elemento (pop)
insertar(arr, idx, valor)Inserta un elemento en una posición específica
eliminar(arr, idx)Elimina el elemento en una posición
contiene(arr, valor)Verifica si un valor existe en el arreglo
indice_de(arr, valor)Busca el índice de un valor
ordenar(arr)Ordena el arreglo in-place
invertir(arr)Invierte el orden del arreglo
mapa(arr, fn)Aplica una función a cada elemento (map)
filtrar(arr, fn)Filtra elementos según un predicado (filter)
reducir(arr, fn, inicial)Acumula valores (reduce/fold)

Funciones sobre Mapas

FunciónDescripción
tiene(mapa, clave)Verifica si una clave existe en el mapa
claves(mapa)Retorna un arreglo con todas las claves
valores(mapa)Retorna un arreglo con todos los valores
copiar(mapa)Crea una copia superficial del mapa

Estructuras Adicionales

Pila (Stack)

FunciónDescripción
Pila.nueva()Crea una pila vacía
pila.apilar(valor)Agrega un elemento en la cima
pila.desapilar()Quita y retorna el elemento de la cima
pila.tope()Retorna el elemento en la cima sin quitarlo
pila.esta_vacia()Verifica si la pila está vacía

Casos de uso

💡 Rendimiento: Las operaciones mapa, filtrar y reducir permiten escribir código declarativo y evitan bucles manuales, mejorando la legibilidad sin sacrificar rendimiento.