In the Distribution package, suppose distrSamp is of type probability distribution sampler. What exactly does the functionrand(distrSamp,n) do ? What’s the returned value of this function? Or is it because of method dispatching, different probability distribution sampler would make this function return different values?

Edit: I think I figure it out. I think it’s because of both “method dispatching” and the property of each probability distribution sampler. For example,

If distrSamp is Categorical([0.5, 0.2, 0.3]), then rand(distrSamp,100) would return a vector of length 100, with each element of this vector being picked from 1 (with probability 0.5), 2 (with probability 0.2) and 3 (with probability 0.3).

On the other hand, if distrSamp is Exponential(0.02), then rand(distrSamp,100) would return a vector of length 100, with all of them together form a part / sample of an exponential distribution with rate 0.02. Or do you have a better explanation for Exponential distribution this case?