Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

additional terms #20

Open
1 of 8 tasks
moimikey opened this issue Jan 27, 2016 · 15 comments
Open
1 of 8 tasks

additional terms #20

moimikey opened this issue Jan 27, 2016 · 15 comments

Comments

@moimikey
Copy link

moimikey commented Jan 27, 2016

Hi,

I'd be more than happy to submit some pull requests on these various terms. I'd much rather get an opinion first before starting on a PR:

  • application (as a compliment to partial application)
  • thunk
  • tail-call optimization
  • trampolines
  • functor
  • reducer
  • transducer
  • homomorphism
@hsavit1
Copy link

hsavit1 commented Jan 27, 2016

@moimikey - this would be a fantastic if you could define these!

I would add natural transformations and morphisms as well to this list

@moimikey
Copy link
Author

awesome. will do 👍

@moimikey
Copy link
Author

moimikey commented Jan 27, 2016

@hsavit1 there's that fine line between functional programming paradigms and concepts that we use daily, vs. all and everything under category theory. this list could grow or get chopped down. i'll obviously crop and add and crop some more:

  • morphisms
    • homo-
    • iso-
    • mono-
    • epi-
    • bi-
    • endo-
    • auto-
    • natural transformation

@hsavit1
Copy link

hsavit1 commented Jan 27, 2016

@moimikey agreed, we wouldn't want to "scare" anyone away from functional programming with overwhelming dictionary of category theory terms (and no examples)

on the other hand, I'd love to educate more programmers on category theory concepts. They were insanely helpful for me when learning Haskell for the first time.

@hemanth
Copy link
Owner

hemanth commented Feb 9, 2016

@moimikey Sorry for the late reply, please feel free to do the PRs!

Thank you!

@jethrolarson
Copy link
Collaborator

Functor is already in.

This is turning into a dictionary fast but maybe that's still okay.
Some of the topics kind of deserve their own pages. Especially when it comes to defining why they're useful. I could see a page dedicated to morphisms.

It's hard to summarize monad in a paragraph and one or two examples don't illuminate, for example.

@hemanth
Copy link
Owner

hemanth commented Feb 22, 2016

@jethrolarson We could start a wiki in this repo, maybe?

@hemanth
Copy link
Owner

hemanth commented Jun 10, 2016

@jethrolarson Interested?

@flip111
Copy link

flip111 commented Jul 24, 2016

polymorphism

@stereobooster
Copy link

immutability and functional data structures

@hemanth
Copy link
Owner

hemanth commented Dec 20, 2016

profunctors as well.

@stereobooster
Copy link

totality e.g. no effects at all. Exceptions and divergence as effects, but not side effects, e.g. "pure" function can have it. And side effects is IO and non-determinism.

@stereobooster
Copy link

scopes as soon as programing language has symbols it has to deal with scopes. Basically it can ignore them and make one global scope. Or choose functions as scopes and visibility of higher-call stack scopes (hello closures). Or lexical scopes, or module scopes. It is also to choose different models of scopes for different types of symbols.

Language without symbols - simple lambda calculus.
One global scope - lambda calculus extended with symbols or assembly language.

@tfausak
Copy link

tfausak commented Nov 7, 2017

Thanks for the great resource! Is this where I can report bugs on this post? If so:

  • The titles don't define anchors (like <h2 name="...">), so the links in the table of contents don't go anywhere.
  • One of the paragraphs in the "Closure" section isn't formatted properly.

capture

@jethrolarson
Copy link
Collaborator

functional.works-hub.com is not maintained by this repo. They copied the readme and didn't compile the markdown properly. I'm not sure who you should bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants