この問題、素直に書けば

f [] = 0
f xs = last xs + f (diff xs)
 where
  diff [x] = []
  diff (x1:x2:xs) = (x2-x1):diff xs

こんな感じだろうけど、prologのコードだと全体が一様で問題の構造が
みえずらいね。