2017-11-07 11:37 GMT+01:00 Norbert Hartl <norbert@hartl.name>:

Am 07.11.2017 um 11:24 schrieb Denis Kudriashov <dionisiydk@gmail.com>:


2017-11-07 9:23 GMT+01:00 Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com>:
I have other ideas yet.

The selector undefinedFirst is good, but the implementation not so.
I don't like the UndefinedSortFunction: too specific, compose oddly...

In the PR, collatedBy: is the way to tell how we sort properties (if you have a better name, go, it's bikesheding day)

������ "sort by size of name"
������ (people sorted: (#name collatedBy: #size))
�������������� =�� (people sorted: [:p| p name size])

It is nice idea but it should be not bound to sort functions. Because this feature is useful for other block based messages:
people collect: #name >> #size
people select: #name >> #size >> #even
(I use >> as example).��
Generally it is about functional programming. Would be nice to have this in image because it will simplify scripting a lot.��
I remember nice set of blog posts from Vassili Bykov about such kind of things��http://blog.3plus4.org/2007/03/.

And it is really valuable for databases. The query tree can be transformed into the query language of another system like a database.

Norbert


I was thinking of the same chevron selector or maybe a pipe |, but I find that >> better indicates that result is directed to next block/function/processing unit.
Of course it sounds much like a DSL.