Edit

kc3-lang/kc3/doc/1_KC3/1.18_Quote.fr.md

Branch :

  • doc/1_KC3/1.18_Quote.fr.md
  • # 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)