add mapNotNull to ObjIterable with documentation
This commit is contained in:
parent
bce88ced43
commit
2737aaa14e
@ -68,6 +68,20 @@ These, again, does the thing:
|
|||||||
|
|
||||||
>>> void
|
>>> void
|
||||||
|
|
||||||
|
## map and mapNotNull
|
||||||
|
|
||||||
|
Used to transform either the whole iterable stream or also skipping som elements from it:
|
||||||
|
|
||||||
|
val source = [1,2,3,4]
|
||||||
|
// transform every element to string or null:
|
||||||
|
assertEquals(["n1", "n2", null, "n4"], source.map { if( it == 3 ) null else "n"+it } )
|
||||||
|
|
||||||
|
// transform every element to stirng, skipping 3:
|
||||||
|
assertEquals(["n1", "n2", "n4"], source.mapNotNull { if( it == 3 ) null else "n"+it } )
|
||||||
|
|
||||||
|
>>> void
|
||||||
|
|
||||||
|
|
||||||
## Instance methods:
|
## Instance methods:
|
||||||
|
|
||||||
| fun/method | description |
|
| fun/method | description |
|
||||||
|
|||||||
@ -158,6 +158,23 @@ val ObjIterable by lazy {
|
|||||||
ObjList(result)
|
ObjList(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addFnDoc(
|
||||||
|
name = "mapNotNull",
|
||||||
|
doc = "Transform elements by applying the given lambda unless it returns null.",
|
||||||
|
params = listOf(ParamDoc("transform")),
|
||||||
|
returns = type("lyng.List"),
|
||||||
|
isOpen = true,
|
||||||
|
moduleName = "lyng.stdlib"
|
||||||
|
) {
|
||||||
|
val fn = requiredArg<Statement>(0)
|
||||||
|
val result = mutableListOf<Obj>()
|
||||||
|
thisObj.toFlow(this).collect {
|
||||||
|
val transformed = fn.call(this, it)
|
||||||
|
if( transformed != ObjNull) result += transformed
|
||||||
|
}
|
||||||
|
ObjList(result)
|
||||||
|
}
|
||||||
|
|
||||||
addFnDoc(
|
addFnDoc(
|
||||||
name = "take",
|
name = "take",
|
||||||
doc = "Take the first N elements and return them as a list.",
|
doc = "Take the first N elements and return them as a list.",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user