Suppose we wish to compute successive differences. In J:

succ_diff =: 2 & (-~/\)

i.e., quite easy with dyadic
infix, though this
acts strangely: it applies `-~/`

to each infix (which is an array) of length 2.

To think of how this works, consider `2 & ([\)`

:

2 & ([\) (i.10)
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9

i.e. one can imagine building up a `9 2`

array and then folding each row.

This turns out to be not quite how it works under the hood; `2 f/\ y`

is an
idiom
that is recognized.

In Haskell:

λ:> let succDiff xs = zipWith (-) (tail xs) xs

This is more direct; we use (lazy) linked lists.