This new notation will enable you a new way to create functions


`.map(...)` produces `(parameter) => parameter.map(...)`, it is not
evaluated, it is a function definition





I cannot say I like it. To me it is less readable, confusing to be exact. 
Anything leading with `.` (dot), seems unusual











---------- Původní e-mail ----------
Od: Scott Rudiger <scottrudi...@gmail.com>
Komu: Simon Farrugia <simonfarrugi...@gmail.com>
Datum: 21. 6. 2019 15:30:53
Předmět: Re: Proposal: Selector/Select Expression
"

I can appreciate the intent of the proposal. 👍




Minor nit with one of the examples:






// user[] => email[] (With Arrays) 



const getEmailsList = users => users.map(user => user.contacts.email); 



const getEmailsList = .map(.contacts.email); 



```




I would think with the proposal you'd still need to reference `users`.
Otherwise what are we mapping?




```

const getEmailsList = users.map(.contacts.email); 


```




On Fri, Jun 21, 2019, 4:49 AM Simon Farrugia <simonfarrugi...@gmail.com
(mailto:simonfarrugi...@gmail.com)> wrote:

"


Selector/Select Expression 



 



Doing functional & reactive programming is currently really verbose in
JavaScript.  



Hopefully this issue will be alleviated with the addition of the pipe
operator in the near future. 



 



One things you end up doing most when doing fp is doing simple selections
(mappings) on objects & arrays. This unfortunately becomes really verbose 
and repetitive. 



 



What I'm proposing is to be able to collapse/simplify selector arrow 
function expressions like this: 



 



``` 



// user => email 



const getEmail = user => user.contacts.email; 



``` 



 



to something like this: 



 



``` 



// user => email 



const getEmail = .contacts.email; 



``` 



 



More examples: 



 



``` 



// user[] => email[] (With Arrays) 



const getEmailsList = users => users.map(user => user.contacts.email); 



const getEmailsList = .map(.contacts.email); 



```



 



``` 



// Usage with pipeline operator 



pipe(user, map(user => user.contacts.email)) 



user |> .contacts.email 



``` 



 



I think this would work really well, particularly in conjunction with the 
pipeline operator, resulting in more concise and expressive code improving
readability. 



This is just syntactic sugar, but same as in the case of the pipeline
operator, selector functions are so intrinsic and commonplace to any code
base, that I would think it's worth considering. 



 



I would  appreciate hearing your thoughts. Thanks. 


 _______________________________________________
es-discuss mailing list
es-discuss@mozilla.org(mailto:es-discuss@mozilla.org)
https://mail.mozilla.org/listinfo/es-discuss
(https://mail.mozilla.org/listinfo/es-discuss)
"


_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss
"
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to