eeffbkyg
This commit is contained in:
parent
3a1da22c36
commit
fa2e6c4e08
5 changed files with 22 additions and 4 deletions
|
@ -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.
|
|
@ -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".
|
||||
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -97,7 +97,7 @@ a:visited {
|
|||
|
||||
.footnote-ref sup {
|
||||
font-size: 0.7em;
|
||||
/* font-weight: bold; */
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.footnote-ref sup::before {
|
||||
|
|
|
@ -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.
|
Loading…
Add table
Add a link
Reference in a new issue