Exactly three adjacent 3 in lists: Difference between revisions

→‎{{header|Haskell}}: Added a sketch in Haskell
m (→‎{{header|Ring}}: Mark incorrect for the fourth time)
(→‎{{header|Haskell}}: Added a sketch in Haskell)
Line 43:
5 true
</pre>
 
=={{header|Haskell}}==
<lang haskell>import Data.List (group)
 
nnPeers :: Int -> [Int] -> Bool
nnPeers n xs =
match (length (filter match xs))
&& any
( ((&&) . match . length)
<*> all match
)
(group xs)
where
match = (n ==)
 
--------------------------- TEST -------------------------
main :: IO ()
main =
putStrLn $
unlines $
(\xs -> show xs <> " -> " <> show (nnPeers 3 xs))
<$> [ [9, 3, 3, 3, 2, 1, 7, 8, 5],
[5, 2, 9, 3, 3, 7, 8, 4, 1],
[1, 4, 3, 6, 7, 3, 8, 3, 2],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[4, 6, 8, 7, 2, 3, 3, 3, 1]
]</lang>
{{Out}}
<pre>[9,3,3,3,2,1,7,8,5] -> True
[5,2,9,3,3,7,8,4,1] -> False
[1,4,3,6,7,3,8,3,2] -> False
[1,2,3,4,5,6,7,8,9] -> False
[4,6,8,7,2,3,3,3,1] -> True</pre>
 
=={{header|Julia}}==
Line 60 ⟶ 93:
end
</lang>
 
 
=={{header|Raku}}==
9,659

edits