Sorry there is a mistake in the problem description.
Here it is in Python:

a = [1,1,1,1] 
b = [0,1,2,3] 
c = [0,2] 
d = [0,0,0,0] 

for i in b: 
    for j in c: 
        if (i+j)<3: 
                d[i+j] += a[i]

-Haisheng


On Sun, Feb 5, 2012 at 2:28 PM, Haisheng Wu <freizl@gmail.com> wrote:
a = [1,1,1,1] 
b = [0,1,2,3] 
d = [0,0,0,0] 

for i in b: 
  for j in c: 
    if (i+j)<3: 
      d[i+j] += a[i]  

My just work implementation in Haskell
http://hpaste.org/57452

Another people implementation in Haskell with Monad and it turns out complex and very imperatively.
http://hpaste.org/57358

Do you have any cool solution in FP way?

Thanks.
-Simon