From 10c9f6b716c5a3273d8645b2e7b5758b8cdf60ac Mon Sep 17 00:00:00 2001 From: Louis Date: Thu, 14 Sep 2023 16:20:59 +0200 Subject: [PATCH] vault backup: 2023-09-14 16:20:59 --- .obsidian/workspace.json | 15 +++++----- .../Chapter 4 - A bit of imperative.md | 2 ++ Algo/Séminaire/Chapter 5 - Recursivity.md | 29 ++++++++++++++++++- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index c06623d..d032a0e 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,7 +13,7 @@ "state": { "type": "markdown", "state": { - "file": "Algo/Séminaire/Chapter 4 - A bit of imperative.md", + "file": "Algo/Séminaire/Chapter 5 - Recursivity.md", "mode": "source", "source": false } @@ -85,7 +85,7 @@ "state": { "type": "backlink", "state": { - "file": "Algo/Séminaire/Chapter 4 - A bit of imperative.md", + "file": "Algo/Séminaire/Chapter 5 - Recursivity.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -102,7 +102,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "Algo/Séminaire/Chapter 4 - A bit of imperative.md", + "file": "Algo/Séminaire/Chapter 5 - Recursivity.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -125,7 +125,7 @@ "state": { "type": "outline", "state": { - "file": "Algo/Séminaire/Chapter 4 - A bit of imperative.md" + "file": "Algo/Séminaire/Chapter 5 - Recursivity.md" } } }, @@ -158,11 +158,11 @@ }, "active": "9e7be1904dfd4451", "lastOpenFiles": [ - "Algo/Séminaire/assets/unitaire-meme.png", - "Algo/Séminaire/Chapter 5 - Recursivity.md", - "Algo/Séminaire/Exercices seminaire.md", "Algo/Séminaire/Chapter 4 - A bit of imperative.md", + "Algo/Séminaire/Chapter 5 - Recursivity.md", "Algo/Séminaire/Chapter 3 - Case analysis.md", + "Algo/Séminaire/assets/unitaire-meme.png", + "Algo/Séminaire/Exercices seminaire.md", "Algo/Séminaire/Introduction.md", "Algo/Séminaire/Chapter 2 - Functions.md", "Algo/Séminaire/assets/fact function response.png", @@ -185,7 +185,6 @@ "Mathématiques/Séminaire/Logics", "Mathématiques/Séminaire/Logics/Pasted image 20230904101721.png", "Mathématiques/Séminaire/Logics/Pasted image 20230904101453.png", - "Mathématiques/Séminaire/Logics/Pasted image 20230904100934.png", "Mathématiques/Séminaire", "2023-09-01.md", "Algo", diff --git a/Algo/Séminaire/Chapter 4 - A bit of imperative.md b/Algo/Séminaire/Chapter 4 - A bit of imperative.md index 0e5b46e..21d1740 100644 --- a/Algo/Séminaire/Chapter 4 - A bit of imperative.md +++ b/Algo/Séminaire/Chapter 4 - A bit of imperative.md @@ -1,3 +1,5 @@ + +![](https://gitea.louisgallet.fr/lgallet/epicours/raw/branch/main/Algo/S%C3%A9minaire/assets/unitaire-meme.png) ## 0.1. Print If we want to print something in CAML, we have to use this structure diff --git a/Algo/Séminaire/Chapter 5 - Recursivity.md b/Algo/Séminaire/Chapter 5 - Recursivity.md index 3a57428..0affc11 100644 --- a/Algo/Séminaire/Chapter 5 - Recursivity.md +++ b/Algo/Séminaire/Chapter 5 - Recursivity.md @@ -1,4 +1,5 @@ -![Alt](https://gitea.louisgallet.fr/lgallet/epicours/raw/branch/main/Algo/S%C3%A9minaire/assets/recursivite-meme.png "recursivity problem") + +
### 5.1. Simple functions To create a recursive function we have to use this structure @@ -64,3 +65,29 @@ A[ctd 3] --> B[ctd 2] --> C[ctd 1] --> D[ctd 0] --> E[ctd -1] --> F[ ] --> E --> > ctd is countdown ## 5.3. Several recursive calls +A function that have several recursive calls is defind like this +$$ +Fn = {1 -> \text{if } n\eqslantless{1} \brace{Fn+1+Fn+2} } +$$ +**Fibonacci functions** +```Ocaml +let rec fibonacci n = + if n = 0 then + 0 + else if n = 1 then + 1 + else + fibonacci(n-1) + fibonacci(n-2);; + +let add n = + if n = 0 then + false + else + even (n-1);; + +let even n = + if n = 0 then + true + else + add (n-1);; +``` \ No newline at end of file