Greetings,


1) I admit code is quite clean using Python-style comprehensive containers. So by looking around I know there is the following already available:

https://www.codeproject.com/Tips/5276120/Multi-Container-List-Comprehension-in-Cplusplus


2) But I'm sure there is a way to mix that with the new pipe operator to make it even cleaner:

set nums = {1,2,3,4};

/* insert all elements multiplied by themselves */
auto result = nums | each(x, x*x);

/* insert all elements but only multiply those that fulfill the condition */
auto result = nums | each(x, (x>2)?x*x:x);

/* insert only the elements that fulfill the condition */
auto result = nums | only(x, x<2, x*x);

/* insert and print only the elements that fulfill the condition */
auto result = nums | only(x, x<4 && cout<<x, x*x); /* prints: 123 */


3) The standards should make room to parallelizing these algorithms as well.


Regards,

--

Phil Bouchard
Founder & CTO
C.: (819) 328-4743

Fornux Logo