vault backup: 2023-09-15 14:39:17
This commit is contained in:
parent
1d890744fd
commit
b5ec7a1ce4
2
.obsidian/workspace.json
vendored
2
.obsidian/workspace.json
vendored
@ -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",
|
||||||
|
@ -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;;
|
||||||
|
```
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user