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]
 | 
						|
> ```
 |