summaryrefslogtreecommitdiffstats
path: root/content/posts/it-doesnt-mean-that
diff options
context:
space:
mode:
Diffstat (limited to 'content/posts/it-doesnt-mean-that')
-rw-r--r--content/posts/it-doesnt-mean-that/index.md40
-rw-r--r--content/posts/it-doesnt-mean-that/wikimedia_monad.svg1
2 files changed, 41 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>
diff --git a/content/posts/it-doesnt-mean-that/wikimedia_monad.svg b/content/posts/it-doesnt-mean-that/wikimedia_monad.svg
new file mode 100644
index 0000000..887c3c6
--- /dev/null
+++ b/content/posts/it-doesnt-mean-that/wikimedia_monad.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><link xmlns="" type="text/css" rel="stylesheet" id="dark-mode-custom-link"/><link xmlns="" type="text/css" rel="stylesheet" id="dark-mode-general-link"/><style xmlns="" lang="en" type="text/css" id="dark-mode-custom-style"/><style xmlns="" lang="en" type="text/css" id="dark-mode-native-style"/><style xmlns="" lang="en" type="text/css" id="dark-mode-native-sheet"/><path fill="#fff" stroke="#000" stroke-width="2" d="M254 128a126 126 0 1 1-252 0 126 126 0 1 1 252 0z"/><path d="M138 128a10 10 0 1 1-20 0 10 10 0 1 1 20 0z"/><script xmlns="" id="bw-fido2-page-script"/></svg> \ No newline at end of file