Two sum: Difference between revisions
→Haskell - Returning all matches: Added a version using more list comprehension sugaring
m (→Haskell – Returning all matches: Adjusted output) |
(→Haskell - Returning all matches: Added a version using more list comprehension sugaring) |
||
Line 328:
main :: IO ()
main = mapM_ print $ sumTo 21 [0, 2, 11, 19, 90, 10]</lang>
Or, resugaring a little:
<lang Haskell>sumTo :: Int -> [Int] -> [(Int, Int)]
sumTo n ns =
let ixs = zip [0 ..] ns
in [ (i, j)
| (i, x) <- ixs
, (j, y) <- ixs
, (i < j) && (x + y) == n ]
main :: IO ()
main = print $ summingPairIndices 21 [0, 2, 11, 19, 90, 10]</lang>
{{Out}}
<pre>(1,3)
|