This commit is contained in:
Alexander 2025-06-12 13:23:02 -04:00
parent 3a1da22c36
commit fa2e6c4e08
5 changed files with 22 additions and 4 deletions

View file

@ -41,4 +41,8 @@ end
It turns out that there are multiple ways to implement the derivation functors--- also multiple ways to implement a particular monad ---and they don't all behave the same, which means it's hard to predict whether the more-general, derived implementations are the "natural" ones that you expected to get without _ad hoc_ testing, which obviously rather defeats the point of "free".
[^falsehood]: Unsurprisingly, I lied. You have to buy a `Monad` first.
On the other hand, the derivations here can be performed pretty mechanically, with little insight, by following the types in much the same way one might mechanically prove a simple proposition. So it _is_ a relatively low-effort and low-investment activity.
TODO: explain functors and `with type`.
[^falsehood]: Unsurprisingly, that's a lie. You have to buy a `Monad` first.

View file

@ -42,7 +42,7 @@ Let us finally now consider `bind`. `bind` is the driving force behind monads, p
[^physical]: Of course, we say that `list` _simulates_ nondeterminism for the same reason that we say physical computers simulate turning machines: both are constrained by the resource limitations of physical reality and thus strictly weaker than the theoretical devices they seem to emulate.
[^choice]: A "choice" is between two or more options; if there's just one option, you don't have a choice.
[^choice]: A choice is between two or more options; if there's just one option, `x`, there's no choice.
[^alpha]: Pronounced "alpha tee".

View file

@ -110,6 +110,20 @@
font-style: italic;
}
@font-face {
font-family: 'Mono';
src: url('../assets/fonts/JuliaMono/JuliaMono_Light.ttf') format('truetype');
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'Mono';
src: url('../assets/fonts/JuliaMono/JuliaMono_LightItalic.ttf') format('truetype');
font-weight: 300;
font-style: italic;
}
@font-face {
font-family: 'Mono';
src: url('../assets/fonts/JuliaMono/JuliaMono_Regular.ttf') format('truetype');

View file

@ -97,7 +97,7 @@ a:visited {
.footnote-ref sup {
font-size: 0.7em;
/* font-weight: bold; */
font-style: normal;
}
.footnote-ref sup::before {

View file

@ -2,7 +2,7 @@
You're at ytheleus.org, home page of the [Ytheleus](yth-name) programming language!
This is not implemented yet; Ytheleus does not *does not hi* exist. With that out of the way, here are my vague ideas of what it should be:
This is not implemented yet; Ytheleus does not exist. With that out of the way, here are my vague ideas of what it should be:
+ It's Andreas Rossberg's 1ML, but computationally pure.
+ The implementation uses dynamic superinstructions for interpretation and compiles either via "Compiling without continuations", if I decide not to put first-class multiple-resumption continuations in the lanugage, or with CPS, otherwise.