From 7fbf9619f26a9f951763ea0b07ed38c7371a32bb Mon Sep 17 00:00:00 2001 From: Louis Date: Fri, 20 Oct 2023 14:21:34 +0200 Subject: [PATCH] vault backup: 2023-10-20 14:21:34 --- .obsidian/workspace.json | 13 ++++++------- Algo/Courses/Chapter 6 - Lists (Exercises).md | 12 ++++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 1fa0ed9..932805e 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -31,8 +31,7 @@ } } } - ], - "currentTab": 1 + ] } ], "direction": "vertical" @@ -98,7 +97,7 @@ "state": { "type": "backlink", "state": { - "file": "Algo/Séminaire/Chapter 5 - Recursivity.md", + "file": "Algo/Courses/Chapter 6 - Lists (Exercises).md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -115,7 +114,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "Algo/Séminaire/Chapter 5 - Recursivity.md", + "file": "Algo/Courses/Chapter 6 - Lists (Exercises).md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -138,7 +137,7 @@ "state": { "type": "outline", "state": { - "file": "Algo/Séminaire/Chapter 5 - Recursivity.md" + "file": "Algo/Courses/Chapter 6 - Lists (Exercises).md" } } }, @@ -169,15 +168,15 @@ "command-palette:Open command palette": false } }, - "active": "26919eaeae9a8f38", + "active": "eaf65669cfff2a2c", "lastOpenFiles": [ + "Algo/Séminaire/Chapter 5 - Recursivity.md", "Algo/Courses/Chapter 6 - Lists.md", "Algo/Séminaire/Chapter 3 - Case analysis.md", "Algo/Séminaire/Chapter 2 - Functions.md", "Algo/Courses/Chapter 6 - Lists (Exercises).md", "Algo/Séminaire/Chapter 1 - CAML basics.md", "Prog/Loops.md", - "Algo/Séminaire/Chapter 5 - Recursivity.md", "Algo/Séminaire/Chapter 4 - A bit of imperative.md", "Algo/CM/Lists.md", "Algo/CM/CM du 27 septembre.md", diff --git a/Algo/Courses/Chapter 6 - Lists (Exercises).md b/Algo/Courses/Chapter 6 - Lists (Exercises).md index c6ee805..b475919 100644 --- a/Algo/Courses/Chapter 6 - Lists (Exercises).md +++ b/Algo/Courses/Chapter 6 - Lists (Exercises).md @@ -252,4 +252,16 @@ let assos k = function | (k2, v2):: t when k < k2 -> faiwith "not found" | e::t -> assoc k t val assos = 'a -> ('a + 'b) list -> 'b = + +(*Correction*) +let assoc k l = + if k < 0 then + invalid_arg "k not a natural" + else + let rec findkey k = function + [] -> failwith "not found" + | (ke, ve)::t when k = ke -> ve + | (ke, ve)::t when k < ke -> failwith "not found" + | (ke, ve)::t -> findkey k t + in findkey l ```