diff --git a/src/kiss/Kiss.hx b/src/kiss/Kiss.hx index b96ed37..afaf020 100644 --- a/src/kiss/Kiss.hx +++ b/src/kiss/Kiss.hx @@ -70,7 +70,7 @@ class Kiss { "symbol" => Symbol("Prelude.symbol"), "expList" => Symbol("Prelude.expList"), "map" => Symbol("Lambda.map"), - "filter" => Symbol("Lambda.filter"), // TODO use truthy as the default filter function + "filter" => Symbol("Prelude.filter"), "flatten" => Symbol("Lambda.flatten"), "has" => Symbol("Lambda.has"), "count" => Symbol("Lambda.count"), diff --git a/src/kiss/Prelude.hx b/src/kiss/Prelude.hx index d67e214..009905a 100644 --- a/src/kiss/Prelude.hx +++ b/src/kiss/Prelude.hx @@ -517,4 +517,10 @@ class Prelude { throw "Can't run a subprocess on this target."; #end } + + public static function filter(l:Iterable, ?p:(T) -> Bool):kiss.List { + if (p == null) + p = Prelude.truthy; + return Lambda.filter(l, p); + } }