fork(2) download
  1. data Token = Number | Operator deriving (Eq, Show)
  2.  
  3. swap :: [Token] -> [Token]
  4. swap (x@Number:y@Operator:xs) = y : x : swap xs
  5. swap (x:xs) = x : swap xs
  6. swap [] = []
  7.  
  8.  
  9. main = putStrLn $ show $ swap [Number, Number, Number, Operator, Operator, Number, Operator, Number]
  10. -- 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]