The Maths of Computing

After chatting to @auxbus about calculus, I thought it might be useful to have a new thread.

I’m trying to decide how much I need to know about Category Theory to learn functional programming properly. I found a WikiP page that really scared me but just came across this. It has pictures

I watched a TV programme a few months ago. I’m pretty sure they said category theory was the biggest problem area for most Oxbridge maths students. I like a challenge.

I’m learning Clojure, which looks like a Lisp, so you’d think it was based on Lambda calculus but I think the abstractions come from category theory, via Haskell.

I’ve been looking at categorisation of concepts via interwingularity and their representation as graphs, and at John Locke’s ideas about thinking which includes abstraction. Category Theory is about abstraction of mathematical concepts via graphs. It ‘would be silly not to’ wouldn’t it?

I’ve also read a comment that you don’t need to understand category theory to grok Haskell because it only uses a tiny part of it which is ‘easy’ to understand.

I’ve remembered I have this 1989 book
along with an answer sheet (apparently in MY handwriting!), all the way up to 1.5. Sadly, functions are chapter 7.

It says Jim Woodcock on the cover though, not Janet, as Google has filed it.

I think I bought it when ‘formal methods’ were the Next Big Thing. As you’ve probably gathered, they weren’t.

I keep coming across “Discrete” maths. I like to check definitions:

“not the name of a branch of mathematics, like number theory, algebra, calculus, etc. Rather, it’s a description of a set of branches of math that all have in common the feature that they are “discrete” rather than “continuous”.”

So a ‘theme’ not an ‘epic’ in agile terminology :slight_smile:

I don’t think I’ve ever seen the term ‘dense set’ before, for a set that is linearly ordered nor did I know that some don’t consider them to be part of discrete maths. I guess that is kind of ‘pseudo continuous’.

I don’t think it’s at all necessary. It’s probably a prereq if you want to hang out with the haskell wizards, though. It’s a huge field.

I confess this list did put me off slightly

A long list of things I’ve mostly never heard of :slight_smile:

I decided to read a chapter of ‘Software Engineering Mathematics’ every morning before I get up, to ease me gently into the day. In fact, the title is misleading as it’s actually about ‘Formal Methods Mathematics’.

It introduces Formal Systems, Propositional Calculus, Predicate Calculus, Set Theory, Relations, Functions, Sequences and Algebras to build up to case studies and formal methods.

In 1982/3 I was asked a question by a Cambridge graduate about the metaphysics of maths. It came from one of his professors: “Is maths a belief system?” He said it can be seen as a set of rules that we made up and follow strictly or as an embodiment of great truths about the universe but that requires faith. At the time, I think it made me glad I didn’t go to Cambridge but I think I’m far more curious now than I was at 22. I think I needed to know more first.

I need a bit more time to think about it but I think Chapter 1 may have finally provided an answer: maths is a language in which we can express some of our belief systems. We project meaning onto all language but maths is particularly abstract. In maths, we can reason without meaning.

As ‘half a physicist’ this is particularly profound because it implies that if the universe is made of maths, as some have suggested, then it has no meaning beyond that which we project onto it. My computer scientist half prefers the theory that the universe is made of information, even if it is wrong.

This just appeared in my feed. Proving folk think different:

Nat is an edge case, though, for many things :slight_smile:

Observation: There’s an increasing amount of formal maths and stats being advocated in mainstream development circles.

It’s that a range? From refactoring - category theory.

Why is Pi Calculus’s icon a lambda? Is that part of the recategorisation? :relaxed:

Proudly sponsored by Bytemark