Stream pipeline replacement: the loop version
The complete source of forAI_stream_replacement_before.ek9, compiled by the EK9 compiler. Shown on forAI.html.
#!ek9 defines module site.forAI.streamsbefore defines class User name as String: String() active as Boolean: false recentLogin as Boolean: false User() -> name as String active as Boolean recentLogin as Boolean this.name :=: name this.active :=: active this.recentLogin :=: recentLogin isActive() as pure <- rtn as Boolean: active hasRecentLogin() as pure <- rtn as Boolean: recentLogin operator $ as pure <- rtn as String: name default operator ? defines function findActiveUsers() -> users as List of User <- active as List of User: List() for user in users if user.isActive() if user.hasRecentLogin() active += user defines program ActiveUsers() stdout <- Stdout() users <- [ User(name: "ada", active: true, recentLogin: true), User(name: "bob", active: true, recentLogin: false), User(name: "cy", active: false, recentLogin: true) ] stdout.println($findActiveUsers(users))
Download forAI_stream_replacement_before.ek9
Output
[ada]