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.
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
:
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
Suivant : 1.19 Ratio