summaryrefslogtreecommitdiffstats
path: root/content/posts/it-doesnt-mean-that/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/posts/it-doesnt-mean-that/index.md')
-rw-r--r--content/posts/it-doesnt-mean-that/index.md40
1 files changed, 40 insertions, 0 deletions
diff --git a/content/posts/it-doesnt-mean-that/index.md b/content/posts/it-doesnt-mean-that/index.md
new file mode 100644
index 0000000..0fb2988
--- /dev/null
+++ b/content/posts/it-doesnt-mean-that/index.md
@@ -0,0 +1,40 @@
+---
+title: It doesn't mean that
+date: 2024-05-16
+---
+
+<img src="wikimedia_monad.svg" alt="A plain circle with a small dot in the center" style="max-height: 200px; margin-bottom: 0px" />
+
+## When I learned my first programming language
+
+I learned about functions.
+
+A _function_ is a thing you can call. The function might then _return_ a value.
+
+## Then I learned about functional programming
+
+And learned that those words did not mean that at all. Or at least that was not their full, universal meaning.
+
+Those _functions_ were actually _procedures_. Or _subroutines_. A function should be mathematical and pure. A mapping from a type to another.
+
+_Returning_ was not optional. All functions return, explicitly or implicitly, since function application must be assigned a value.
+
+I learned new words too.
+
+_Functors_ are containers. _Monads_ are powered-up functors with useful computational context.
+
+## Now that I’m learning about category theory…
+
+…I’m learning that those words do not mean what I thought they meant, either.
+
+_Functions_ are apparently morphisms, or arrows, in the category of types. _Functors_ are not containers, they are morphisms between categories. They are also their own category.
+
+_Monads_ are — I haven’t gotten to monads yet.
+
+## I read that they have a Monad in philosophy
+
+And it means _god_. [¹](it-doesnt-mean-that#fn1)
+
+---
+
+1. <a href="https://en.wikipedia.org/wiki/Monad_(philosophy)" id="fn1">More or less.</a>