On Thursday, December 10, 2020 at 9:51:50 PM UTC+1 Ben Greenman wrote:

> >> A package for compose-n and compose-3 to like 10 or 20? 
>
> Yes 
>
> I like the idea of _small packages that do one thing_ better than 
> _one-stop all-utility packages_ ... but do what you think makes sense. 
>

Sounds reasonable to me, I'll create that package soon.

Thanks for the advice.
 

> >> Someday later, perhaps poly dots and #:rest-star can combine to 
> >> improve the built-in type. 
> >> 
> > 
> > From my naive viewpoint, I don't really see other natural ways of 
> improving 
> > the type of compose other than what I wrote, the problem being that 
> writing 
> > the type for arbitrary-arity composition would require specifying 
> equality 
> > between the return type of every function and the argument type of the 
> > preceding one. I'm not sure even Coq and Agda have that facility 
> directly, 
> > certainly not Haskell or Idris to the best of my knowledge. I don't 
> expect 
> > them to go beyond binary compose, because it's sufficient to do any 
> > compositions. It's that in Racket I find writing chains of nested 
> compose 
> > calls somewhat clunky. 
>
> Typed Racket already has some domain-specific ideas to support the 
> #:rest-star option. The equality-chaining constraint is definitely 
> new, but doesn't seem out of the question. 
>
>
> https://github.com/racket/typed-racket/blob/master/typed-racket-lib/typed-racket/rep/type-rep.rkt#L586-L612


I see, #:rest-star seems quite powerful.  I'm curious to see what kind of 
stuff will come out of it.

I think other languages (Coq Agda Haskell Idris) have a harder time 
> here because they want to support currying. And even if they added 
> #:rest-star logic, their users might call it an anti-pattern because 
> it doesn't fit with partial application. 
>

That's a good point.  I started forgetting how important implicit currying 
is in these languages.

-
Sergiu

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/164ca420-75dc-4241-b512-dea79fe6e0aan%40googlegroups.com.

Reply via email to