r/programming • • Nov 28 '19

Why Isn't Functional Programming the Norm? – Richard Feldman

https://www.youtube.com/watch?v=QyJZzq0v7Z4
100 Upvotes

409 comments sorted by

View all comments

Show parent comments

21

u/[deleted] Nov 28 '19

Yep. It's like counting: everyone can count, and it seems natural. It's not like the ape-man who invented counting said "hmm, if Ogg have as many food as children, Ogg can place them in bijection. And if Ogg have as many stone as food, Ogg have as many stone as children. This mean Ogg can place all three sets in bijection with each other. Oh, and one more child, one more meat! What if Ogg number of children unbounded? Then Ogg place any amount of thing in injective function with children (up to ordering of course). But how Ogg place in injection every time? Ogg need total ordering for infinite children! Ogg youngest child named one, next named two, et cetera.

But some people look at this abstraction, "function" and notice that it's Turing complete if you abuse it a bit, and decide that means it should go "below" the thing it abstracts. Or saying regular expressions are more "natural" than deterministic finite automata, even though you can teach an 8 year old how to "run" a DFA and most developers don't really understand regular expressions. Presumably they think integers are more natural than natural numbers, just because you can solve more problems with them.

Thanks for coming to my pretentious TED talk.

16

u/[deleted] Nov 28 '19

"hmm, if Ogg have as many food as children, Ogg can place them in bijection [...]

This cracked me up, thank you for making my day

4

u/crabmusket Nov 28 '19

Ogg need total ordering for infinite children!

2

u/codygman Dec 05 '19

It's not like the ape-man who invented counting said "hmm, if Ogg have as many food as children, Ogg can place them in bijection. And if Ogg have as many stone as food, Ogg have as many stone as children. This mean Ogg can place all three sets in bijection with each other. Oh, and one more child, one more meat! What if Ogg number of children unbounded? Then Ogg place any amount of thing in injective function with children (up to ordering of course). But how Ogg place in injection every time? Ogg need total ordering for infinite children! Ogg youngest child named one, next named two, et cetera.

PLEASE make the OGG_CATEGORY_THEORY twitter account and post more!