fork download
  1. import Data.Bool (bool)
  2.  
  3. solve :: Char -> String -> String -> [String]
  4. solve char replace = traverse $ bool replace <$> pure <*> (/= char)
  5.  
  6. main :: IO ()
  7. main = interact $ unlines . solve 'X' "ABCD"
Success #stdin #stdout 0s 4944KB
stdin
TEST XXX BEST
stdout
TEST AAA BEST
TEST AAB BEST
TEST AAC BEST
TEST AAD BEST
TEST ABA BEST
TEST ABB BEST
TEST ABC BEST
TEST ABD BEST
TEST ACA BEST
TEST ACB BEST
TEST ACC BEST
TEST ACD BEST
TEST ADA BEST
TEST ADB BEST
TEST ADC BEST
TEST ADD BEST
TEST BAA BEST
TEST BAB BEST
TEST BAC BEST
TEST BAD BEST
TEST BBA BEST
TEST BBB BEST
TEST BBC BEST
TEST BBD BEST
TEST BCA BEST
TEST BCB BEST
TEST BCC BEST
TEST BCD BEST
TEST BDA BEST
TEST BDB BEST
TEST BDC BEST
TEST BDD BEST
TEST CAA BEST
TEST CAB BEST
TEST CAC BEST
TEST CAD BEST
TEST CBA BEST
TEST CBB BEST
TEST CBC BEST
TEST CBD BEST
TEST CCA BEST
TEST CCB BEST
TEST CCC BEST
TEST CCD BEST
TEST CDA BEST
TEST CDB BEST
TEST CDC BEST
TEST CDD BEST
TEST DAA BEST
TEST DAB BEST
TEST DAC BEST
TEST DAD BEST
TEST DBA BEST
TEST DBB BEST
TEST DBC BEST
TEST DBD BEST
TEST DCA BEST
TEST DCB BEST
TEST DCC BEST
TEST DCD BEST
TEST DDA BEST
TEST DDB BEST
TEST DDC BEST
TEST DDD BEST