Comments (3)
Hey there, thanks for the question, it’s nice to see people still read my things thoroughly :-) I think the proof is right, but I do agree that the presentation could be a bit more precise. I’ll try to do better below. If it’s still wrong please do nag me about it!
Proof
We start out with the free theorem for fmap
,
∀ f g p q.
f ∘ g = p ∘ q
=>
fmap f ∘ fmap g = fmap p ∘ fmap q
Since this works universally for all p
and q
, we are free to choose p = id
and q = f ∘ g
,
∀ f g.
f ∘ g = id ∘ (f ∘ g)
=>
fmap f ∘ fmap g = fmap id ∘ fmap (f ∘ g)
Since the part before the =>
is always true, the implication reduces to its consequence, giving us
∀ f g.
fmap f ∘ fmap g = fmap id ∘ fmap (f ∘ g)
as claimed.
from articles.
You know, re-reading what you originally wrote, I'm not sure why I opened this issue in the first place. I must have been tired. Sorry :(
from articles.
A good article would have been readable by a tired person as well! If you’ve got a suggestion for better presentation let me know :-)
from articles.
Related Issues (20)
- reference to Data.Text.readMaybe, which does not exist
- Questionable claim in MFP2 HOT 4
- Innacuracy due to GHC 7.10 in Monad hierachy. HOT 1
- maybeLoeb HOT 2
- 'Write yourself a Brainfuck in an hour' section 2, exercise 3 confusing wording HOT 1
- `The second Functor law is redundant` is not proper HOT 3
- Remove warning from the second functor law article HOT 1
- Hindley-Milner Inference Oddity w/ Twice Combinator HOT 3
- fbut: (\p1 p2 -> e) is not (\p1 -> \p2 -> e) HOT 3
- loeb moeb swing HOT 2
- Small slip with $ HOT 4
- Inferred (rank 1) type of moeb could be more general HOT 1
- (a `op`) is \x -> a `op` x HOT 2
- State where not-bottom assumption was used HOT 3
- loeb: how to detect non-termination? HOT 1
- zipWith question: drop in splitMiddle HOT 1
- zipWith question: flip in rotateUntil HOT 1
- zipWith question: Correctness of optimized Polygon Eq HOT 1
- Another approach to fix HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from articles.