How do I "vectorize" calls to dpois? I am not sure if this is an instance of vectorizing the operations in R, but this is where I am stuck:
I want to get: 
dpois(1, 0.1)
dpois(2, 0.2)
dpois(3, 0.3)

and I tried:
dpois(1:3, 0.1:0.3)

and
do.call(dpois, list(x = 1:3, lambda = 0.1:0.3))

both do not work. 
It there a R-ish way of doing this? 
 A: From help(dpois) it looks like you need x and lambda to be vectors (read more about object classes in the R Intro or any other R documentation to understand what this means). 
The following works:
dpois(1:3, c(seq(0.1, 0.3, .1)))
Your first attempt fails because you are not concatenating (see: help(c)) the values for 0.1:0.3 into a vector and you are not providing any way for R to know what you want it to do with 0.1:0.3. Calling seq() in the manner above tells it to get a sequence from 0.1 to 0.3 by 0.1.
Your second attempt is pretty far into the weeds. There's no way you need a power-tool like do.call for this kind of thing.
A: The dpois function is already a vectorised function --- it is already capable of taking vector inputs of x and lambda.  The problem is that your coding 0.1:0.3 does not produce the desired vector c(0.1, 0.2, 0.3).  The following R code gives the same results as individual calls:
x      <- 1:3
lambda <- 1:3/10;

set.seed(1);
dpois(x, lambda);

[1] 0.090483742 0.016374615 0.003333682

