Меморизация Паскаль треугольник

Меня не интересует реальное решение или другие методы решения проблемы, это памятка, с которой мне нужна помощь :)

Мне нужна помощь в решении проблемы треугольника Паскаля с запоминанием. Я хочу получить среднее число в основании треугольника. (Проект Эйлера 15)

Первый пример не запомнился (хотя название подсказывает так) «20 20» не решаемо

Вторая попытка - попытка сделать что-то похожее на:http://www.haskell.org/haskellwiki/Memoization

В-третьих, это подсказка для подсказок №2, если она более читабельна для кого-то.

Я получаю эту ошибку, но я не уверен, что это правильно, даже если она будет скомпилирована ... (запустить из ghci с 2 2 в качестве параметров

no instance for (Num [a0])
arising from a use of `zmemopascals'
Possible fix: add an instance declaration for (Num [a0])
In the expression: zmemopascals 2 2
In an equation for `it': it = zmemopascals 2 2

.

Code:
--1 
memopascals r c =  [[pascals a b | b<-[1..c]] | a<-[1..r]] !! (r-1) !! (c-1) 
 where pascals 1 _ = 1 
       pascals _ 1 = 1 
       pascals x y = memopascals (x-1) y + memopascals x (y-1) 

--2 
--xmemopascals :: Int -> Int -> Int 
xmemopascals r c =  map (uncurry pascals) (zip [1..] [1..]) !! (r-1) !! (c-1) 
 where pascals 1 _ = 1 
       pascals _ 1 = 1 
       pascals x y = memopascals (x-1) y + memopascals x (y-1) 


--3 
zmemopascals r c =  zipWith pascals [1 ..] [1 ..] !! (r-1) !! (c-1) 
 where pascals 1 _ = 1 
       pascals _ 1 = 1 
       pascals x y = memopascals (x-1) y + memopascals x (y-1)

Ответы на вопрос(3)

Ваш ответ на вопрос