vault backup: 2023-09-15 14:39:17

This commit is contained in:
Louis Gallet 2023-09-15 14:39:17 +02:00
parent 1d890744fd
commit b5ec7a1ce4
Signed by: lgallet
SSH Key Fingerprint: SHA256:qnW7pk4EoMRR0UftZLZQKSMUImbEFsiruLC7jbCHJAY
3 changed files with 13 additions and 7 deletions

View File

@ -159,12 +159,12 @@
"active": "0d2d422aa24bb900", "active": "0d2d422aa24bb900",
"lastOpenFiles": [ "lastOpenFiles": [
"Algo/Séminaire/Introduction.md", "Algo/Séminaire/Introduction.md",
"Algo/Séminaire/Exercices seminaire.md",
"Algo/Séminaire/Chapter 5 - Recursivity.md", "Algo/Séminaire/Chapter 5 - Recursivity.md",
"Algo/Séminaire/Chapter 3 - Case analysis.md", "Algo/Séminaire/Chapter 3 - Case analysis.md",
"Algo/Séminaire/Chapter 2 - Functions.md", "Algo/Séminaire/Chapter 2 - Functions.md",
"Algo/Séminaire/Chapter 4 - A bit of imperative.md", "Algo/Séminaire/Chapter 4 - A bit of imperative.md",
"Algo/Séminaire/Chapter 1 - CAML basics.md", "Algo/Séminaire/Chapter 1 - CAML basics.md",
"Algo/Séminaire/Exercices seminaire.md",
"Algo/Séminaire/assets/exception-meme.png", "Algo/Séminaire/assets/exception-meme.png",
"Algo/Séminaire/assets/filter-meme.png", "Algo/Séminaire/assets/filter-meme.png",
"Algo/Séminaire/assets/if-meme.png", "Algo/Séminaire/assets/if-meme.png",

View File

@ -94,3 +94,11 @@ val add : int -> bool = <fun>
val even : int -> bool = <fun> val even : int -> bool = <fun>
``` ```
An accumulator is a thing that try to get our result. In CAML we trying to not use an accumulator in our program. In CAML the syntax for the accumulator (`inv`) is: (exemple with reverse_int exercise. See 4.9 - b)
```Ocaml
# let reverse_int =
let rec rev inv = function
| 0 -> inv
| n -> rev (inv*10 + n mod 10)(n/10)
in rev 0 n;;
```

View File

@ -339,12 +339,10 @@ let rec reverse_int n =
val reverse : int -> string = <fun> val reverse : int -> string = <fun>
# let reverse_int = # let reverse_int =
let rec rev org new_ = let rec rev inv = function
if org < 10 then | 0 -> inv
new_ * 10 + org | n -> rev (inv*10 + n mod 10)(n/10)
else in rev 0 n;;
rev (org/10)(new*10 + org mod 10)
in rev n 0;;
``` ```
## Exercise 4.10 ## Exercise 4.10