You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
def (>>>)(f:(a) -> b, g:(b) -> c) -> (a) -> c given (a, b, c) = \x. g(f(x))
The parser still has a precedence for the >>> operator, so I tried to revive it as above. But when I tried running the result, I got this:
3.0 | (exp >>> sq)
> Type error:Wrong number of arugments provided. Expected 2 but got 3
>
> 3.0 | (exp >>> sq)
> ^^^^^^^^^^^^^^^^^^
Why? Because the subexpression in parens parsed as (>>>)(exp, sq), and then the | operator turned it into (>>>)(exp, sq, 3.0). But the error message was not helpful in figuring this out. Do we want a function composition operator, or should we just not bother for now?
The text was updated successfully, but these errors were encountered:
I'd be happy to get rid of the function composition operator. We're leaning into a more pointful style anyway.
But it's a bad error regardless. I think we shouldn't do the arg-extension-via-pipe trick if the application is an infix binary application. Those are syntactically binary, after all.
We should also consider not doing the arg extension when the application is in parens.
The parser still has a precedence for the
>>>
operator, so I tried to revive it as above. But when I tried running the result, I got this:Why? Because the subexpression in parens parsed as
(>>>)(exp, sq)
, and then the|
operator turned it into(>>>)(exp, sq, 3.0)
. But the error message was not helpful in figuring this out. Do we want a function composition operator, or should we just not bother for now?The text was updated successfully, but these errors were encountered: