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",
"lastOpenFiles": [
"Algo/Séminaire/Introduction.md",
"Algo/Séminaire/Exercices seminaire.md",
"Algo/Séminaire/Chapter 5 - Recursivity.md",
"Algo/Séminaire/Chapter 3 - Case analysis.md",
"Algo/Séminaire/Chapter 2 - Functions.md",
"Algo/Séminaire/Chapter 4 - A bit of imperative.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/filter-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>
```
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>
# let reverse_int =
let rec rev org new_ =
if org < 10 then
new_ * 10 + org
else
rev (org/10)(new*10 + org mod 10)
in rev n 0;;
let rec rev inv = function
| 0 -> inv
| n -> rev (inv*10 + n mod 10)(n/10)
in rev 0 n;;
```
## Exercise 4.10