Commit c8eaffa1b5514ec217d01a74bf38d2bd6f56207c

Thomas de Grivel 2025-05-19T13:18:30

translate using ChatGPT

diff --git a/doc/1_KC3/1.17_Ptr.fr.md b/doc/1_KC3/1.17_Ptr.fr.md
new file mode 100644
index 0000000..8590c9f
--- /dev/null
+++ b/doc/1_KC3/1.17_Ptr.fr.md
@@ -0,0 +1,24 @@
+# 1.17 Ptr
+
+En KC3, le type `Ptr` ne devrait normalement pas être utilisé,
+mais il est présent pour rester compatible avec le type `void *`
+du langage C.
+
+Vous pouvez effectuer un cast vers ou depuis un pointeur,
+mais attention à bien chaîner les conversions entre le même type.
+
+Le seul pointeur que l'on peut lire depuis les sources (parser) est
+le pointeur NULL :
+
+```elixir
+ikc3> (Ptr) 0
+(Ptr) 0
+```
+
+---
+
+Top : [Documentation KC3](../)
+
+Précédent : [1.16 Map](1.16_Map)
+
+Suivant : [1.18 Quote](1.18_Quote)
diff --git a/doc/1_KC3/1.18_Quote.en.md b/doc/1_KC3/1.18_Quote.en.md
index f2db610..93f64f5 100644
--- a/doc/1_KC3/1.18_Quote.en.md
+++ b/doc/1_KC3/1.18_Quote.en.md
@@ -1,10 +1,17 @@
 # 1.18 Quote
 
-The KC3 `Quote` type allows you for partial quotes. See `Unquote`.
+The KC3 `Quote` type allows you for code quotes that holds evaluation
+by one level. The quote can be made a partial quote using `unquote`
+making the evaluation more eager by one level.
 
 Quoting is necessary for meta-programming where you want to return
 a quoted value that will not be evaluated except the quote will be
-removed.
+removed. `Unquote` produces the inverse, re-enabling evaluation of
+ macro arguments inside a quote for instance.
+
+`Unquote` takes parenthesis while `quote` does not. Quoting with
+parenthesis will return you a `Call` to the `paren` operator.
+Do not do that. `Unquote` can only be called inside a `quote`.
 
 ## 1.18.1 Examples
 
@@ -19,6 +26,14 @@ ikc3> type(quote quote 1 + 1)
 Quote
 ```
 
+Examples with `unquote`
+```elixir
+ikc3> m = macro (x) { quote 1 + unquote x }
+macro(x) { quote 1 + unquote(x) }
+ikc3> m(41)
+42
+```
+
 ---
 
 Top : [KC3 documentation](../)
diff --git a/doc/1_KC3/1.18_Quote.fr.md b/doc/1_KC3/1.18_Quote.fr.md
new file mode 100644
index 0000000..17ad7b9
--- /dev/null
+++ b/doc/1_KC3/1.18_Quote.fr.md
@@ -0,0 +1,44 @@
+# 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)
diff --git a/doc/1_KC3/1.19_Ratio.fr.md b/doc/1_KC3/1.19_Ratio.fr.md
new file mode 100644
index 0000000..117e356
--- /dev/null
+++ b/doc/1_KC3/1.19_Ratio.fr.md
@@ -0,0 +1,26 @@
+# 1.19 Ratio
+
+Les ratios sont construits à partir d’un couple de grands entiers :
+le numérateur, qui peut être n’importe quel nombre,
+et le dénominateur, qui doit être strictement positif.
+Ils représentent des fractions de nombres entiers.
+Ils s’écrivent avec une barre oblique sans espace.
+
+```elixir
+ikc3> 1/2 + 2/3
+7/6
+ikc3> 1/2 * 2/3
+1/3
+ikc3> 1/2 / 2/3
+3/4
+ikc3> 1/2 - 2/3
+-1/6
+```
+
+---
+
+Top : [Documentation KC3](../)
+
+Précédent : [1.18 Quote](1.18_Quote)
+
+Suivant : [1.20 Str](1.20_Str)