You have an extra set of brackets in your loop body, which makes it create (but not execute) a block on each loop iteration. Here's what you meant to write:
2 to: n do: [ :i |
result := (parent + gparent).
gparent := parent.
parent := result.
'come on, do something' displayNl.
].