12/02/18 12:01:56.66
>>407
事例はちょっと思いつかないんですが
高階関数はプログラムの中の構造を関数として再利用するためのものです
その点では>>404はあまりいい例ではなくて、
ret<-0
for(i in 1:length(data)){if(predicate(data[i])){ret<-ret+1}else{ret}}
について高階関数を利用する例だとすると、
Reduce(function(ret, x){if(predicate(x)){ret+1}else{ret}},data,0)
になります。これは外側のループの部分の構造をReduceという関数で再利用していると言う形になります
でもどうやらこの手の単純な高階関数はベクトル計算という形でRに組み込まれているようなので
あまり出番はなさそうですね