やったー、Rでfoldできたよー

R

いや、それっぽいのがあるのは知ってるんだけどさ。こんなんができるようになった。 > fold(paste,"",letters) [1] " a b c d e f g h i j k l m n o p q r s t u v w x y z" > fold(function(x,y){'+'(x,y)},0,1:10) [1] 55 ネストしたリストに対してはまだ…

ネストしてるリストでもfoldできるようになったよー

R

わーい。 > fold(paste,"",list(letters,LETTERS)) [1] " a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" > fold(function(x,y){'+'(x,y)},0,list(1,2,list(3,4))) [1] 10 定義はこんな感じに…

lengthとか

R

Rで学ぶプログラミングGaucheとかやりたくなってきた(何。 my_length <- function(list){ if(is.null(list)){ return(0) }else if(is.list(list)){ return(1 + my_length(cdr(unlist(list,recursive=FALSE)))) }else{ return(1 + my_length(cdr(list))) } } …