From 1ee2d1b1e9eb69390d8ca5017d178e3f7afb6ce7 Mon Sep 17 00:00:00 2001 From: Nathan McCarty Date: Thu, 23 Jan 2025 00:57:16 -0500 Subject: [PATCH] General revisions, improve README --- README.md | 58 +++++++++++++++++++++++++++++++++++++++-- src/Years/Y2015/Day6.md | 6 ++++- src/Years/Y2015/Day7.md | 9 +++++-- 3 files changed, 68 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 59d1b13..6dfd540 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,22 @@ The goal of this project is to get all 500 currently available stars in the form of one single Idris application, and thoroughly document the results as literate Idris files. -# Index of non-day modules +## Authors Note + +The solutions contained in this project are intended to be read in sequential +order, though can reasonably be read in any order if you have a good level of +familiarity with more advanced functional programming topics. + +The solutions will involve progressively more advanced topics as day and year +number increase, though I try not to introduce too much within the scope of any +one day. + +Suggestions and other feedback are highly welcome, please reach out to me via +any platform you know me on, or send an email to the +[~thatonelutenist/public-inbox](https://lists.sr.ht/~thatonelutenist/public-inbox) +mailing list on source hut. + +## Index of non-day modules - [Runner](src/Runner.md) @@ -31,17 +46,56 @@ solution. Provide views that enable recursively pattern matching numbers as lists of digits, in both ascending and descending order of significance. -# Index of years and days +## Index of years and days - 2015 - [Day 1](src/Years/Y2015/Day1.md) + + Warm up problem, breaks in our new runner and not much else interesting. + - [Day 2](src/Years/Y2015/Day2.md) + + An early hint of effectful parsing. + - [Day 3](src/Years/Y2015/Day3.md) + + Peculiarities of writing mutually recursive functions in dependently typed + languages. + - [Day 4](src/Years/Y2015/Day4.md) + + Basic FFI to openssl to steal its MD5 function for Idris's use. + - [Day 5](src/Years/Y2015/Day5.md) + + First introduction to views and dependent pattern matching[^1]. + - [Day 6](src/Years/Y2015/Day6.md) + + Naive approach to handling the first 2d grid problem. + - [Day 7](src/Years/Y2015/Day7.md) + + Introduces dependent maps and indexed type families. + - [Day 8](src/Years/Y2015/Day8.md) + + Proper effectful parsers and non-determinism in effect stacks. + - [Day 9](src/Years/Y2015/Day9.md) + + Naive approach to handling the first graph traversal problem. + - [Day 10](src/Years/Y2015/Day10.md) + + Introduce our `Digits`, dependent pattern matching on integers as lists of + digits. + - [Day 11](src/Years/Y2015/Day11.md) + + Introduces refinement types + +## References + +[^1]: Idris 2 Manual: + [Views and the "with" rule](https://idris2.readthedocs.io/en/latest/tutorial/views.html#views-and-the-with-rule) diff --git a/src/Years/Y2015/Day6.md b/src/Years/Y2015/Day6.md index 6534ca5..131be48 100644 --- a/src/Years/Y2015/Day6.md +++ b/src/Years/Y2015/Day6.md @@ -1,4 +1,8 @@ -# [Year 2015 Day 6](https://adventofcode.com/2015/day/6) +# \[Year 2015 Day 6\](https://adventofcode.com/2015/day/ + +6. + +Introduction to the advent of code classic 2d grid problem.