Démarrage Express — 2 Minutes

Objectif : absorber 80% de Catnip avant que ton café ne refroidisse. Deux minutes. Pas plus. Pas moins. Juste la dose.


1. Variables & Calculs — la base dimensionnelle

voltage = 42
entropy = voltage * 2
print(entropy)  # 84

Catnip applique exactement ce que tu écris : assignation, calcul, résultat. Pas d’esthétique superflue.

La beauté vient après, jamais avant.


2. Lambdas — forme compacte, impact maximal

amp = (signal) => { signal * 2 }
amp(21)  # 42

Une lambda Catnip :

  • se définit vite
  • retourne la dernière expression
  • capture son scope
  • se fiche totalement de la dimension du signal

Une lambda nommée perd son anonymat, mais pas sa nature. Dans Catnip, l’identité ne vient pas du nom mais de la forme.


3. Boucles — direct, sans décor

For loop

for i in range(1, 6) {
    print(i)
}

While loop

tic = 0
while tic < 3 {
    print("Tick:", tic)
    tic = tic + 1
}

Des boucles simples, sans magie : le comportement est celui que tu attends, exactement.


4. Conditions — le tri logique le plus sobre possible

age = 25
if age < 18 {
    print("Mineur")
} else {
    print("Adulte")
}

Aucune ambiguïté, aucune indentation capricieuse. Les blocs sont explicites et retournent leur dernière valeur si utilisés comme expressions.


5. Pattern Matching — la machine de tri universelle

pulse = read_sensor()

match pulse {
    0 => { print("No signal — sector offline") }
    n if n < 0 => { print("Reverse flux:", n) }
    n if n > 100 => { print("Overload detected:", n) }
    _ => { print("Nominal:", pulse) }
}

Le wildcard _ capture tout ce que tu n’avais pas anticipé — y compris toi-même.

Le match remplace les cascades de if/elif. Et remplace aussi les migraines.


Premier Script Complet

Crée born_to_segfault.cat :

# Fonction lambda
hello = (nom) => {
    print("BORN TO SEGFAULT", nom, "!")
}

hello("Monde")

for robot in range(1, 4) {
    print("Compteur:", robot)
}

Exécute :

catnip born_to_segfault.cat

Tu viens d’écrire ton premier programme Catnip. Dimension-agnostique, simple, propre, sans bruit.


Et Après ?

C’est-à-dire que tu connais maintenant les cinq primitives qui permettent de construire n’importe quel programme — y compris un programme qui génère ce guide, qui pourrait lui-même générer un guide expliquant comment générer des guides. À partir d’ici, il s’agit seulement de combiner ces cinq éléments dans des configurations de moins en moins absurdes jusqu’à obtenir quelque chose d’utile.

Teaser : Broadcasting Dimension-Agnostique

(Le vrai superpouvoir, mais en 5 secondes seulement.)

result = list(1, 2, 3).[* 2]
# → list(2, 4, 6)

Même expression pour :

  • un scalaire
  • une liste
  • un tensor
  • une colonne entière de DataFrame
  • et probablement des choses encore non inventées

Une seule forme de code pour tous les univers parallèles. Schrödinger aurait adoré.


Prochaine étape

Tu maîtrises maintenant :

  • variables
  • lambdas
  • boucles
  • conditions
  • pattern matching

Tu es à 60% de Catnip. Les 40% restants tiennent dans le guide suivant :

Guide 5 minutes