R Language
Funktionell programmering
Sök…
Inbyggda funktioner för högre ordning
R har en uppsättning inbyggda högre ordningens funktioner: Map
, Reduce
, Filter
, Find
, Position
, Negate
.
Map
tillämpar en given funktion på en lista med värden:
words <- list("this", "is", "an", "example")
Map(toupper, words)
Reduce
tillämpar successivt en binär funktion på en lista över värden på ett rekursivt sätt.
Reduce(`*`, 1:10)
Filter
ges en predikatfunktion och en lista över värden returnerar en filtrerad lista som endast innehåller värden för vilka predikatfunktionen är SANT.
Filter(is.character, list(1,"a",2,"b",3,"c"))
Find
ges en predikatfunktion och en lista med värden returnerar det första värdet som predikatfunktionen är SANT.
Find(is.character, list(1,"a",2,"b",3,"c"))
Position
ges en predikatfunktion och en lista med värden returnerar positionen för det första värdet i listan för vilket predikatfunktionen är SANT.
Position(is.character, list(1,"a",2,"b",3,"c"))
Negate
inverterar en predikatfunktion som gör att den returnerar FALSE för värden där den returnerade SANT och vice versa.
is.noncharacter <- Negate(is.character)
is.noncharacter("a")
is.noncharacter(mean)