diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 4bd9308..340eb50 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/Courses/Chapter 6 - Lists.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/Courses/Chapter 6 - Lists.md", + "file": "Algo/Courses/Chapter 6 - Lists (Exercises).md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -138,7 +137,7 @@ "state": { "type": "outline", "state": { - "file": "Algo/Courses/Chapter 6 - Lists.md" + "file": "Algo/Courses/Chapter 6 - Lists (Exercises).md" } } }, @@ -169,10 +168,10 @@ "command-palette:Open command palette": false } }, - "active": "26919eaeae9a8f38", + "active": "eaf65669cfff2a2c", "lastOpenFiles": [ - "Algo/Courses/Chapter 6 - Lists (Exercises).md", "Algo/Courses/Chapter 6 - Lists.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", diff --git a/Algo/Courses/Chapter 6 - Lists (Exercises).md b/Algo/Courses/Chapter 6 - Lists (Exercises).md index e26a011..4892873 100644 --- a/Algo/Courses/Chapter 6 - Lists (Exercises).md +++ b/Algo/Courses/Chapter 6 - Lists (Exercises).md @@ -220,3 +220,19 @@ val reverse : 'a list -> 'a list = in rev [] l val reverse: 'a list -> 'a list = ``` + +## Exercise 3.6 +```Ocaml +let rec equals l = function + | [] when l = [] -> true + | [] -> false + | e::t -> if l = [] then false else (let e2::l2 = l in e = e2 + equal (l-1)) +val equals = 'a list -> 'a list -> bool = +``` + +## Exercise 3.7 +```Ocaml +let shared l1 l2 = function + | [] -> [] + | e::t -> let rec s l2 = function + |e::t ->