# Funciones y built-ins

## Objetivo de aprendizaje
- Definir funciones y usar built-ins con argumentos y retornos correctos.

## Sintaxis clave
```lucia
func add(a: int, b: int): int {
    return a + b;
}

print(add(2, 3));
```

## Ejemplos
- Built-ins base: `print`, `len`, `input`, `str`, `int`, `float`, `bool`, `type_of`.
- Utilidad: `abs`, `min`, `max`, `pow`, `round`, `floor`, `ceil`, `random`.
- Helpers de colecciones via metodos:
    - list: `insert`, `remove`, `removeAt`, `extend`, `first`, `last`, `is_empty`, `copy`, `clear`
    - dict: `items`, `size`, `merge`, `put`, `remove`, `is_empty`, `clear`
- Helpers de string via metodos:
    - formato: `ltrim`, `rtrim`, `pad_left`, `pad_right`, `capitalize`, `title`
    - conversion/validacion: `to_int`, `to_float`, `to_bool`, `count`, `is_numeric`, `is_alpha`, `is_alnum`

## Errores comunes
- Cantidad de argumentos incorrecta.
- Retorno incompatible con firma.
- Invocar algo que no es callable.

## Practica sugerida
- Crea funciones auxiliares para promedio y decision aprobar/reprobar.

## Relacionados
- builtins-math-date
- diagnostics
