Why would you want to learn racket after having learned sml? racket is great, no question about that, but it is mostly an educational tool and a "first language". I personally would rather choose a language with a broader real world user base. if you're interested mainly in functional programming, haskell would be a reasonable choice after sml. if not, there are plenty of other possibly more rewarding choices (on the long term).