Maximum difference between adjacent elements of list: Difference between revisions
Content added Content deleted
(Added Go) |
m (→{{header|Haskell}}: Added a Haskell draft) |
||
Line 46: | Line 46: | ||
The pairs with this difference are: [[1 8] [2 9] [10 3]] |
The pairs with this difference are: [[1 8] [2 9] [10 3]] |
||
</pre> |
</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}}== |
=={{header|Phix}}== |