Pipelines

Pipelines in Hades are a neat way to write out nested methods.

with list fixed from std:collections
with console from std:io

var fruits = list.of({"Apple", "Banana", "Mango", "Kiwi", "Avocado"})

fruits
|> map({x => x.toLower()})
|> filter({x => x.startsWith("a")})
|> forEach(??, {x => console.out(x)})

//As opposed to

forEach({x => console.out(x)}, filter({x => x.startsWith("a")}, map({x => x.toLower()}, fruits)))
//map(lambda, list), filter(lambda, list) and forEach(lambda, list) are static methods from the list class

//Or even

fruits.map({x => x.toLower()}).filter({x => x.startsWith("a")}).forEach({x => console.out(x)})
//map(lambda), filter(lambda) and forEach(lambda) are methods from the list class

Source

In Hades, the source of a pipeline can be any variable or statement. The source is the input parameter for the next pipeline statement.

Pipeline target with only one parameter

Example

Pipeline target with multiple parameters

Example

Pipelines in variable assignment

Example

List functions with pipelines

One can import the functions defined in list as fixed and use them in pipelines on lists.

Last updated