Question: I try to generate a trigger, in the trigger statement I have to set a column of type decimal(17,3) with the actual timestamp or the seconds of unix timestamp, but could not find a solution.

Answer: 
You can actually easily visualize it for yourself:

```
import Text.Printf

showOp f = f (printf "(%s op %s)") "0" ["1","2","3"]

```

then

```
Main> showOp foldr
"(1 op (2 op (3 op 0)))"
Main> showOp foldl
"(((0 op 1) op 2) op 3)"
Main> showOp scanl
["0","(0 op 1)","((0 op 1) op 2)","(((0 op 1) op 2) op 3)"]

```
[This was supposed to be a comment on delnan's remark, but was too wordy...]

Yoon, you can open a private 'conversation' with `lambdabot` on the #haskell irc (e.g. at <http://webchat.freenode.net/> ). She has a simple reflection ability, so you can type meaningless letters, e.g.

```
    Yoon: > foldr (\x y -> 2*x + y) o [a,b,c,d]
lamdabot: 2 * a + (2 * b + (2 * c + (2 * d + o)))

```

This says what is evaluated, but as Edka points out you get a picture of the order of evaluation from say

```
     Yoon: > reverse (scanr (\x y -> 2*x + y) o [a,b,c,d])
lambdabot: [o,2 * d + o,2 * c + (2 * d + o),2 * b + (2 * c + (2 * d + o)),2 * a + (2 * b + (2 * c + (2 * d + o)))

```

I remember imprinting some good lessons playing around with `foldr`, `foldl`, `scanr`, `scanl` and this clever device.