So I think your example touches two interesting concepts: map and partial functions.  I'm not sure if map is in the scope of this post or not.  I think it's nice to include it.  However, I lost you a bit when you made two leaps at once.  I imagine it'd be easier to read if you first included the partial function in your example.  Then you include map.

Example 1:

correlations = rep(NA,ncol(data[,-1]))
names(correlations) = c("b", "c", "d")

# we want to skip the first column since that is "a"
for (colIndex in 1:(ncol(data[,-1]))) {
	correlations[colIndex] = cor(data[,colIndex + 1], data$a)
}


Example 2:

correlations = rep(NA,ncol(data[,-1]))
names(correlations) = c("b", "c", "d")

# we want to skip the first column since that is "a"
for (colIndex in 1:(ncol(data[,-1]))) {
	corWithA(data[,colIndex + 1])
}


Example 3:

correlations = apply(data[-1], 2, function(variable) { return cor(variable, data$a) })