TAH boosted

Oops, I made a typo in the type of join (m (m a) -> m instead of m (m a) -> m a). It’s too late for me to delete this meme because it has replies. 😔

Peter Griffin (a character from Family Guy, an inappropriate show that I have not watched) explains monads (most well known as a Haskell typeclass). This meme (viral Internet phenomenon) made me ROFL (roll on floor laughing)! Original content, based on the style of "ironic" memes on r/explainitpeter:

definitely not qualified for that. I just want to learn more math, specifically the subjects that influence type theory.)

In Hackers and Painters (paulgraham.com/hp.html), Paul Graham separates hackers and mathematicians as separate cultures grouped together under "computer science." Do you think that hackers and mathematicians are inherently distinct?

I'm asking this because nowadays, I find myself more interested in the intersection of math and computer science, and I wonder if I'm still a hacker. However, I still agree with hacker philosophy.

(I do not in any way call myself a "mathematician;" I'm...

The isomorphism between (a * b) -> c and a -> (b -> c)

is the same thing as the rule of exponents that

c ^ (a * b) = (c ^ b) ^ a


TAH boosted

*When I said that the two "symbol" names are in different namespaces, I meant that they are in different modules. They are both type names.

What names do you recommend instead of "symbol?"

For the library's API:

Do you prefer the name "Abstract_syntax" or "Signature" for the description of the sorts and symbols of the language?

Do you prefer the name "Concrete_syntax" (if I go with "Abstract_syntax") / "Syntax" (if I go with "Signature") or "Grammar" for the concrete syntax of the language?

I refer to both the function symbols of the signature and terminal / nonterminal symbols of the grammar as "symbol." They are in different namespaces, but still, this is confusing. (cont.)

Okay, I'm writing a general library for making block-based languages (like Scratch and Snap!). Think Blockly, but I want it to be informed by math.

I want to separate the abstract and concrete syntax of logics, so there can be many concrete syntaxes associated with one abstract syntax.

Doing my research, the equivalent of a block shape in Scratch/Snap!/etc is a "sort" in logic, and the equivalent of a block is a constant, function symbol, or predicate symbol. (cont.)

For some reason, the MathJax script isn't being inserted into the HTML output when I use the MathJax option with Hakyll and Pandoc... 😑

I want to make a static site generator, and I think that I should provide a scripting language for it. Should I use my ML dialect (static typing, pattern matching, etc.) or is that overkill for a config language? Should I just throw together a simple Lisp dialect?

TAH boosted
TAH boosted

Do you think that the names of primitive types (int, string, unit, etc.) should be keywords or valid identifiers that may be shadowed?

I just wrote a rudimentary evaluator for my programming language, but I realized that I forgot to handle the cases of there being too many or not enough arguments. Now, I will do research about the representation of partial applications...

Is it possible to change the email associated with my Mastodon account?

Show more
Functional Café

functional.cafe is an instance for people interested in functional programming and languages.