ABC words: Difference between revisions

1,529 bytes added ,  3 years ago
→‎{{header|Haskell}}: Added a solution in Haskell
No edit summary
(→‎{{header|Haskell}}: Added a solution in Haskell)
Line 504:
55: tablecloth
</pre>
 
=={{header|Haskell}}==
<lang haskell>import Data.Maybe (isJust)
 
------------------------ ABC WORDS -----------------------
 
isABC :: String -> Bool
isABC s =
isJust $
afterChar 'a' "bc" s
>>= afterChar 'b' "c"
>>= afterChar 'c' ""
 
afterChar :: Char -> String -> String -> Maybe String
afterChar c except = go
where
go [] = Nothing
go (x : xs)
| x `elem` except = Nothing
| c == x = Just xs
| otherwise = go xs
 
--------------------------- TEST -------------------------
main = do
s <- readFile "unixdict.txt"
mapM_ print $ zip [1 ..] $ filter isABC (lines s)</lang>
{{Out}}
<pre>(1,"aback")
(2,"abacus")
(3,"abc")
(4,"abdicate")
(5,"abduct")
(6,"abeyance")
(7,"abject")
(8,"abreact")
(9,"abscess")
(10,"abscissa")
(11,"abscissae")
(12,"absence")
(13,"abstract")
(14,"abstracter")
(15,"abstractor")
(16,"adiabatic")
(17,"aerobacter")
(18,"aerobic")
(19,"albacore")
(20,"alberich")
(21,"albrecht")
(22,"algebraic")
(23,"alphabetic")
(24,"ambiance")
(25,"ambuscade")
(26,"aminobenzoic")
(27,"anaerobic")
(28,"arabic")
(29,"athabascan")
(30,"auerbach")
(31,"diabetic")
(32,"diabolic")
(33,"drawback")
(34,"fabric")
(35,"fabricate")
(36,"flashback")
(37,"halfback")
(38,"iambic")
(39,"lampblack")
(40,"leatherback")
(41,"metabolic")
(42,"nabisco")
(43,"paperback")
(44,"parabolic")
(45,"playback")
(46,"prefabricate")
(47,"quarterback")
(48,"razorback")
(49,"roadblock")
(50,"sabbatical")
(51,"snapback")
(52,"strabismic")
(53,"syllabic")
(54,"tabernacle")
(55,"tablecloth")</pre>
 
=={{header|Java}}==
9,655

edits