ABC words: Difference between revisions
Content added Content deleted
No edit summary |
(→{{header|Haskell}}: Added a solution in Haskell) |
||
Line 504: | Line 504: | ||
55: tablecloth |
55: tablecloth |
||
</pre> |
</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}}== |
=={{header|Java}}== |