fcn s_of_n_creator(n){ fcn(item,ri,N,samples){ i:=ri.inc(); // 1,2,3,4,... if(i<=N) samples.append(item); else if ((0).random(i) < N) samples[(0).random(N)] = item; samples }.fp1(Ref(1),n,L()) }