[racket-dev] Mangaging `unstable` with packages

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Mon Jun 24 07:18:35 EDT 2013

On Mon, Jun 24, 2013 at 3:52 AM, Eli Barzilay <eli at barzilay.org> wrote:
> On Friday, Sam Tobin-Hochstadt wrote:
>>
>> # `unstable/list`
>>
>> - `remf`, `list-update` `list-set` `map/values`: move to
>>   `racket/list`
>> - `group-by`: rename to `group`, add keyword argument `#:by`
>> defaulting to `equal?`, move to `racket/list`
>
> All of these are used in the tree only by their authors, and almost
> all of them are used between zero and time.
>
> `remf' is the same as `filter-not'.

This is false, as the example in the `remf` docs shows.

> `map/values' can be expressed in most cases more conveniently with
> `for/fold'.

I've used `map/values`, and I'm not its author. Also, it's a function
that I've seen requested for years.

> `group-by' is doing something weird -- see for example clojure's
> function by the same name that does something that looks more useful
> (IMO).  Also, `group' sounds way too generic for something as specific
> as what it does.

`group-by`, and my proposed `group`, is what Haskell provides.  I
don't find the Clojure version nearly as compelling, since it combines
a map and a grouping operation.

Sam

Posted on the dev mailing list.