←
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