Evaluating the lambda expression $(.)(.)(.)$ In the book of Haskell Programming by C. Allen, at page 39, it is given the following lambda expression

$$(.)(.)(.)$$

According to me, this equals to by applying the left two expression as an input for the rightmost expression
$$(.)(.)(.) = (.)(.)y = (.)yz = yzy,$$
and if we read the main expression as
However, the book the result is (I did not understand the argument they provide)
$$.,$$
so which one of us is correct ?
Edit:
Now, after reviewing my calculation, I have 
\begin{align}
(.)(.)(.) &= [(x(y.xxy))(a.ab)](c.cd) \\
    &= (y.(a.ab)(a.ab)y)(c.cd) \\
    &= (a.ab)(a.ab)(c.cd) \\
    &= [(a.ab)(a.ab)](c.cd) \\
    &= [(a.ab)b](c.cd) = bb(c.cd)
\end{align}
however, this result does not make any sense, so where is the mistake that I'm doing in here ?
Edit 2:


It appears that the book first presents one example and then just moves to another one, as $(λxy.xxy)(λx.xy)(λx.xz)$ is not equivalent to $(λxyz.xz(yz))(λmn.m)(λp.p)$.
In order to not get confused with clashing variable names I prefer to use De Bruijn indices; the initial expression would then be:
$(λλ221)(λ12)(λ12)$
and it would reduce (with normal order) as follows:
$(λ(λ13)(λ13)1)(λ12)$
$(λ12)(λ12)(λ12)$
$(λ12)1(λ12)$
$11(λ12)$ - equivalent to your result, $bb(λc.cd)$
