Maximum difference between adjacent elements of list: Difference between revisions

m
→‎{{header|Haskell}}: Added a Haskell draft
(Added Go)
m (→‎{{header|Haskell}}: Added a Haskell draft)
Line 46:
The pairs with this difference are: [[1 8] [2 9] [10 3]]
</pre>
 
=={{header|Haskell}}==
<lang haskell>import Data.List (maximumBy)
import Data.Ord (comparing)
 
maxDelta :: [Float] -> [(Float, (Float, Float))]
maxDelta xs = filter ((delta ==) . fst) pairs
where
pairs =
zipWith
(\a b -> (abs (a - b), (a, b)))
xs
(tail xs)
delta = fst $ maximumBy (comparing fst) pairs
 
main :: IO ()
main =
mapM_ print $
maxDelta [1, 8, 2, -3, 0, 1, 1, -2.3, 0, 5.5, 8, 6, 2, 9, 11, 10, 3]</lang>
{{Out}}
<pre>(7.0,(1.0,8.0))
(7.0,(2.0,9.0))
(7.0,(10.0,3.0))</pre>
 
=={{header|Phix}}==
9,659

edits