This seems to be a bug. Here is the Racket behavior and Haskell behavior for comparison.
====================== $ racket Welcome to Racket v5.1.1. > (foldl - 0 '(1 2 3)) 2 > (foldr - 0 '(1 2 3)) 2 ====================== $ ghci GHCi, version 6.10.4: http://www.haskell.org/ghc/ :? for help Prelude> foldl (-) 0 [1,2,3] -6 Prelude> foldr (-) 0 [1,2,3] 2 _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev