Car

Définition, exemples et bonnes pratiques

À retenir

  • Désigne le premier élément d'une structure de données de type liste.
  • Est indissociable de son opposé cdr (qui récupère le reste de la liste).
  • Terme technique emblématique des langages de la famille Lisp.

En programmation, particulièrement dans le langage Lisp, car est une fonction qui permet d'extraire le tout premier élément d'une liste. Imaginez une file d'attente : l'opération car désigne la personne qui se trouve en tête de file.

Étymologie

Ce terme est un vestige historique de l'informatique des années 1950. C'est l'acronyme de Contents of the Address part of Register (Contenu de la partie adresse du registre), une instruction spécifique à l'ordinateur IBM 704 sur lequel le premier langage Lisp a été conçu.

Exemples d'usage

  • Si vous avez une liste de fruits (pomme banane orange), l'instruction (car fruits) renverra pomme.
  • Dans une paire de données comme (clé . valeur), car permet de récupérer la clé.

Cas d'usage

Ce concept est central en programmation fonctionnelle. Il intervient dès que l'on doit traiter des données organisées en listes ou en arbres, comme dans le développement d'interpréteurs, de compilateurs ou en recherche dans le domaine de l'intelligence artificielle symbolique.

Bonnes pratiques

Il est crucial de vérifier qu'une liste n'est pas vide avant d'appeler car, car tenter d'extraire le premier élément d'un ensemble vide provoque généralement une erreur. Dans les langages récents, on utilise souvent l'alias first, plus lisible pour les débutants.

Synonymes

first head tête de liste

Antonymes

cdr rest tail

Conseil

Pour bien s'en souvenir, dites-vous que car permet d'accéder au "Cœur" (le premier élément) de la donnée, tandis que cdr permet de passer à la suite. Si vous apprenez le Lisp ou le Scheme, pratiquez la manipulation de listes simples pour automatiser ce réflexe.

Questions fréquentes

Est-ce que car existe dans d'autres langages comme Python ou Java ?

Non, ces langages utilisent des méthodes plus modernes comme .get(0) ou [0], mais le concept de 'tête de liste' reste le même.

Peut-on combiner car avec d'autres fonctions ?

Oui, on peut par exemple écrire 'caar' pour obtenir le premier élément du premier élément d'une liste imbriquée.