examples/run/03_transform_csv.cat
#!/usr/bin/env catnip
# Transformation CSV simple

# Note: Pour manipulation CSV réelle, utilisez Python + pandas
# Ce script montre le cas d'usage standalone : transformation data simple

struct Person {
    name;
    age;
    city;
    status;
}

# Données simulées (en production, charger depuis fichier)
data = list(
    Person("Alice", 28, "Paris", "standard"),
    Person("Bob", 35, "Lyon", "standard"),
    Person("Charlie", 22, "Paris", "standard"),
)

# Filtrer : âge > 25
filtered = fold(data, list(), (acc, person) => {
        if person.age > 25 { acc + list(person) } else { acc }
    })

# Transformer : ajouter status
transformed = fold(filtered, list(), (acc, person) => {
        acc + list(Person(person.name, person.age, person.city, "senior"))
    })

# Afficher résultat
print("Personnes > 25 ans :")
for person in transformed {
    print(f"  - {person.name} ({person.age}) de {person.city} [{person.status}]")
}

# Retourner nombre de résultats
len(transformed)  # → 2