Branch :
# 1.18 Quote
Le type KC3 `Quote` permet de créer des citations de code, pour repousser
l'évaluation d'un niveau, et qui peuvent être des citations partielles
en utilisant `Unquote` pour rapprocher l'évaluation d'un niveau inversement.
La citation est nécessaire en métaprogrammation lorsqu'on souhaite
retourner une valeur citée qui ne sera pas évaluée mis à part que le
niveau de citation est réduit d'un niveau. `Unquote` est nécessaire
@ l'inverse pour ré-élever le niveau d'évaluation on peut ainsi passer
des arguments à l'intérieur d'une quote dans une macro par exemple.
## 1.18.1 Exemples
```elixir
ikc3> 1 + 1
2
ikc3> type(1 + 1)
U8
ikc3> quote 1 + 1
1 + 1
ikc3> type(quote 1 + 1)
Call
ikc3> quote quote 1 + 1
quote 1 + 1
ikc3> type(quote quote 1 + 1)
Quote
```
Avec `unquote` :
```elixir
ikc3> m = macro (x) { quote 1 + unquote x }
macro(x) { quote 1 + unquote(x) }
ikc3> m(41)
42
```
---
Top : [Documentation KC3](../)
Précédent : [1.17 Ptr](1.17_Ptr)
Suivant : [1.19 Ratio](1.19_Ratio)