super return

Naveen Chawla naveen.chwl at gmail.com
Wed Aug 30 13:46:26 UTC 2017


`takeWhile` would work as follows:

```
myArray.takeWhile(element=>true) //Simplest case. Iterates over all
elements and returns a new array of them
```

It returns a new array with the consecutive elements from the start all of
whose predicates returns truthy. Thusly it allows iteration with a custom
exit condition, e.g.

```
myArray
    .takeWhile(
         element=>{
             let condition
             //calculate condition
             return condition
         }
    )
```

Prior art: Java 9, rxjs, lodash and possibly others

On Tue, 29 Aug 2017 at 21:27 Allen Wirfs-Brock <allen at wirfs-brock.com>
wrote:

> On Aug 28, 2017, at 12:29 PM, Sebastian Malton <sebastian at malton.name>
> wrote:
>
> The outcome of this basically means "return from current context up one
> level and then return from there”.
>
>
> This would be a terrible violation of functional encapsulation.  How do
> you know that the (e.g.) forOf function isn’t internally using a
> encapsulated helper function that is making the actual call to the call
> back.  You simply have no way to predict where returning from the current
> context “up one” means.
>
>
> A current method of doing this is by using try / catch but it is not
> ideal. Using the above method I believe that it would be able to be better
> optimized.
>
>
> This technique provides a meaningful semantics because it allows the
> controlling outer function to define what early return means.
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170830/abcb569b/attachment.html>


More information about the es-discuss mailing list