fork download
  1. data Token = Number | Operator deriving (Eq, Show)
  2.  
  3. swap :: [Token] -> [Token]
  4. swap (x:y:xs) = if x == Number && y == Operator then
  5. y : x : swap xs
  6. else
  7. x : swap (y : xs)
  8. swap xs = xs
  9.  
  10.  
  11. main = putStrLn $ show $ swap [Number, Number, Number, Operator, Operator, Number, Operator, Number]
  12. -- Output: [Number,Number,Operator,Number,Operator,Operator,Number,Number]
Success #stdin #stdout 0s 4700KB
stdin
Standard input is empty
stdout
[Number,Number,Operator,Number,Operator,Operator,Number,Number]