From a2fbc3a53ba774980639a47a466d488a4d8536d1 Mon Sep 17 00:00:00 2001 From: Louis Date: Thu, 7 Sep 2023 16:08:59 +0200 Subject: [PATCH] vault backup: 2023-09-07 16:08:59 --- .obsidian/workspace.json | 10 ++++----- Algo/Séminaire/Chapter 3 - Case analysis.md | 25 +++++++++++++++++++++ Algo/Séminaire/Exercices sémaines.md | 5 ++++- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 38b6fd9..4c1ae0a 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,7 +13,7 @@ "state": { "type": "markdown", "state": { - "file": "Algo/Séminaire/Exercices sémaines.md", + "file": "Algo/Séminaire/Chapter 3 - Case analysis.md", "mode": "source", "source": false } @@ -85,7 +85,7 @@ "state": { "type": "backlink", "state": { - "file": "Algo/Séminaire/Exercices sémaines.md", + "file": "Algo/Séminaire/Chapter 3 - Case analysis.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -102,7 +102,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "Algo/Séminaire/Exercices sémaines.md", + "file": "Algo/Séminaire/Chapter 3 - Case analysis.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -125,7 +125,7 @@ "state": { "type": "outline", "state": { - "file": "Algo/Séminaire/Exercices sémaines.md" + "file": "Algo/Séminaire/Chapter 3 - Case analysis.md" } } } @@ -146,7 +146,7 @@ "command-palette:Open command palette": false } }, - "active": "c473a791e2b34194", + "active": "bdba25946b821d06", "lastOpenFiles": [ "Algo/Séminaire/Exercices sémaines.md", "Algo/Séminaire/Chapter 3 - Case analysis.md", diff --git a/Algo/Séminaire/Chapter 3 - Case analysis.md b/Algo/Séminaire/Chapter 3 - Case analysis.md index 103a466..a7fdad2 100644 --- a/Algo/Séminaire/Chapter 3 - Case analysis.md +++ b/Algo/Séminaire/Chapter 3 - Case analysis.md @@ -49,3 +49,28 @@ Exception: Invalid_argument "oops" else a/b ;;; val div int -> int -> int = ``` + +## 3.3. Filtering +### Explicit filtering + +> Explicit means that you matches the value + + +**General syntax** + +```Ocaml +match expr with pattern1 -> result1 | pattern2 -> result2 | ... | patternn -> resultn +``` +> All expressions and pattern must avec the same type + +**Example** +```Ocaml +# let f x = match x with + 0 -> 18 + 1 -> 24 + y -> y + y;; + +val f : int -> int = + +# f 1;; +- : int = 24 diff --git a/Algo/Séminaire/Exercices sémaines.md b/Algo/Séminaire/Exercices sémaines.md index 2431455..2690b0e 100644 --- a/Algo/Séminaire/Exercices sémaines.md +++ b/Algo/Séminaire/Exercices sémaines.md @@ -163,6 +163,9 @@ val max4 : 'a -> 'a -> 'a -> 'a -> 'a = ``` ### Exercise 3.4 ```Ocaml -let highest_square_sum x1 x2 x3 = let bigger = max3(x1 x2 x3) and middle = middle3(x1 x2 x3) in (bigger*bigger, middle*middle) +let highest_square_sum x y z = + let sq x = x*x in + sq(max3 x y z) + sq(middle3 x y z) +val highest_square_sum : int -> int -> int -> int = ```