5 ms·
Yeah, point-free sounds cool, until you actually try it out. Even in their example they are not point-free: compose(foo, bar, baz) Here compose is applied
by auggierose 3y ago
Yeah, point-free sounds cool, until you actually try it out. Even in their example they are not point-free:
compose(foo, bar, baz)
Here compose is applied to three "points" (which happen to be functions).
- epgui 3y agoThat example is as point free as it gets. Just because the syntax doesn’t look like Haskell doesn’t really change that.
- auggierose 3y agoYou are applying functions to arguments, aren't you? So "point-free" means you cannot apply a function to arguments on the left hand side of a definition, but you are allowed to do so on the right hand side? If that's point-free, it is also point-less.
- pasquinelli 3y agotacit means a definition doesn't name it's arguments, not that it isn't applied to arguments. the word tacit means implied, so arguments are implicity worked upon, instead of explicitly. tacit doesn't mean functions are nullary.
- auggierose 3y agoYes, but that is the same as not applying a function to arguments on the left hand side of an equation, but still doing so on the right hand side. The question is, what is the point of not doing that on the left hand side, if you then go and still do it on the right hand side? Let me say it again: It's pointless.
- epgui 3y agoIf you tried to understand as hard as you're trying to argue, you wouldn't be having this argument.
- auggierose 3y agoThere is nothing to understand here. As I said, it's pointless. From the Wikipedia article: > Tacit programming is of theoretical interest, because the strict use of composition results in programs that are well adapted for equational reasoning. Now this is bullshit. See my explanation, as equations are symmetric, and you can swap left and right hand side. Maybe you should try to understand harder.
- epgui 3y agoNo, you’re just failing to understand what “equational reasoning” means. It has little to do with the idea of LeftSide = RightSide. In fact you don’t even need an “equation” in that sense, or any equality sign, to do equational reasoning. Equational reasoning is when a program is evaluated (ie.: like when you simplify or factorize an equation in maths) by using substitution (or rewriting) rules: https://en.wikipedia.org/wiki/Rewriting https://en.wikipedia.org/wiki/Rewriting
- auggierose 3y agoThis is becoming funny. I recommend this book for you, you should read it. I have: https://www.cambridge.org/core/books/term-rewriting-and-all-that/71768055278D0DEF4FFC74722DE0D707 https://www.cambridge.org/core/books/term-rewriting-and-all-...
- epgui 3y agoFunny indeed, that’s the first reference on the wiki article. shrugs
- auggierose 3y ago
- deleted 3y ago[deleted]
- lkuty 3y agoIMO It is point free even if the syntax is not as nice as Haskell. Same as foo . bar . baz
- deleted 3y ago[deleted]
- tome 3y agoPoint-free means that you don't bind variables, so this particular example is indeed point-free.
- gorenb 3y agoI use point-free languages, and it’s completely okay if you don’t enjoy them. It’s just that I love them, and they’re fun for me, so I don’t like when people are just saying that they’re like objectively bad. Try them out, see if you like them! I personally like a concatenative/stack-based flavor, but you might not! :)