12/02/17 19:52:56.72
>>401
おもしろいかどうかわかりませんが、
data <- as.integer(runif(10,1,21))
のようなデータがある時に、
predicate <- function(x) { x < 5 }
が真になるような項目を数え上げたいとします。
for文を使うと
ret <- 0
for(i in 1:length(data)){ if (predicate(data[i])) { ret <- ret + 1 } }
のような形になりますが、高階関数を使うと、
length(Filter(predicate, data))
と書けるようになります。
これは関数プログラミングの技法で、もう少し詳しく学びたいようでしたら
programming in haskellなんかが薄くていい本なんじゃないかと思います。