隣り合う二項の差 どう書く?org

なんのひねりもない。

$cat diff.hs 
diff (x:[]) = []
diff (x:y:ys) = (:) (y-x) $ diff $ y:ys
$ ghci diff.hs 
   ___         ___ _
  / _ \ /\  /\/ __(_)
 / /_\// /_/ / /  | |      GHC Interactive, version 6.6, for Haskell 98.
/ /_\\/ __  / /___| |      http://www.haskell.org/ghc/
\____/\/ /_/\____/|_|      Type :? for help.

Loading package base ... linking ... done.
[1 of 1] Compiling Main             ( diff.hs, interpreted )
Ok, modules loaded: Main.
*Main>  diff [3,1,4,1,5,9,2,6,5]
[-2,3,-3,4,4,-7,4,-1]
it :: [Integer]