R Language
Функциональное программирование
Поиск…
Встроенные функции более высокого порядка
R имеет набор встроенных функций более высокого порядка: Map
, Reduce
, Filter
, Find
, Position
, Negate
.
Map
применяет данную функцию к списку значений:
words <- list("this", "is", "an", "example")
Map(toupper, words)
Reduce
последовательно применяет двоичную функцию к списку значений рекурсивным образом.
Reduce(`*`, 1:10)
Filter
задает функцию предиката, а список значений возвращает отфильтрованный список, содержащий только значения, для которых предикатная функция имеет значение ИСТИНА.
Filter(is.character, list(1,"a",2,"b",3,"c"))
Find
заданную функцию предиката, а список значений возвращает первое значение, для которого предикатная функция TRUE.
Find(is.character, list(1,"a",2,"b",3,"c"))
Position
заданная предикатной функцией, и список значений возвращает позицию первого значения в списке, для которого предикатная функция TRUE.
Position(is.character, list(1,"a",2,"b",3,"c"))
Negate
инвертирует функцию предиката, заставляя ее возвращать FALSE для значений, где она возвращала TRUE и наоборот.
is.noncharacter <- Negate(is.character)
is.noncharacter("a")
is.noncharacter(mean)