examples/broadcast/04_comparisons.cat
# Exemple 03 : Comparaisons vectorisées
# Filtrage et sélection basés sur des conditions

print("⇒ Comparaisons vectorisées")

# Comparaisons simples
nombres = list(1, 5, 10, 15, 20)
print("Nombres:", nombres)

sup_10 = nombres.[> 10]
print("Supérieur à 10:", sup_10)

inf_eq_10 = nombres.[<= 10]
print("Inférieur ou égal à 10:", inf_eq_10)

print("\n⇒ Égalité et différence\n")

valeurs = list(1, 2, 3, 2, 1, 2, 3)
print("Valeurs:", valeurs)

est_deux = valeurs.[== 2]
print("Égal à 2:", est_deux)

pas_deux = valeurs.[!= 2]
print("Différent de 2:", pas_deux)

print("\n⇒ Comparaison de deux listes\n")

a = list(1, 5, 3, 8, 2)
b = list(2, 4, 3, 7, 3)
print("Liste a:", a)
print("Liste b:", b)

a_sup_b = a.[> b]
print("a > b (élément par élément):", a_sup_b)

a_eq_b = a.[== b]
print("a == b (élément par élément):", a_eq_b)

print("\n⇒ Filtrage avec comparaisons\n")

# Simuler un filtrage (en attendant une fonction filter native)
temperatures = list(15, 22, 18, 25, 30, 12, 28)
print("Températures:", temperatures)

# Marquer les températures > 20
chaudes = temperatures.[> 20]
print("Températures > 20°C:", chaudes)

# Marquer les températures dans la plage [18, 25)
min_confort = 18
max_confort = 25
sup_min = temperatures.[>= min_confort]
inf_max = temperatures.[<= max_confort]
print("Températures >= 18:", sup_min)
print("Températures <= 25:", inf_max)

print("\n⇒ Validation de données\n")

# Scores entre 0 et 100
scores = list(85, 120, 95, -5, 70, 100)
print("Scores:", scores)

valides_min = scores.[>= 0]
valides_max = scores.[<= 100]
print("Scores >= 0:", valides_min)
print("Scores <= 100:", valides_max)

# En combinant avec des indices, on pourrait filtrer
# (nécessiterait une fonction enumerate ou zip)