33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| aliases:
 | |
|   - objet de première classe
 | |
|   - entité de première classe
 | |
|   - valeur de première classe
 | |
| ---
 | |
| up:: [[programmation]]
 | |
| #s/informatique 
 | |
| 
 | |
| > [!definition] objet de première classe
 | |
| > Un citoyen (ou entité, ou objet, ou valeur) de première classe est une entité qui peut être utilisée *sans restrictions*, c'est-à-dire qu'elle peut être traîtée comme les autres objets ou valeurs du langage.
 | |
| ^definition
 | |
| 
 | |
| > [!example] Implications dans différents langages
 | |
| > - être expressible comme valeur anonyme littérale
 | |
| > - être affecté à des variables ou dans des [[structure de données|structures de données]] 
 | |
| > - avoir une identité intrinsèque
 | |
| > - être comparable (pour l'égalité ou l'identité)
 | |
| > - pouvoir être passé comme paramètre à une procédure / fonction
 | |
| > - pouvoir être renvoyé par une procédure ou une fonction
 | |
| > - pouvoir être constructible lors de l'exécution
 | |
| 
 | |
| > [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")`
 | |
| > ```breadcrumbs
 | |
| > type: tree
 | |
| > collapse: false
 | |
| > mermaid-direction: LR
 | |
| > mermaid-renderer: elk
 | |
| > show-attributes: [field]
 | |
| > field-groups: [downs]
 | |
| > depth: [0, 1]
 | |
| > ```
 |