If your aim is to use the language you are learning in everyday tasks soon, you will probably want to choose Scala. You can use elements of functional, procedural and OO languages. You'll probably start out with a more procedural style and move from there. You will be able to interface with Java code and run your code wherever you have a JVM.
If you really want to learn functional programming, choose Haskell. It's a pure and very mature FP language. You'll be forced to think and act the FP-way. For a beginner i'd recommend starting using an interpreter first (Hugs or, as suggested by commenters, ghci), instead of compilation. That way, you can start out by defining simple computations (factorial, fibonacci numbers, sorting etc.) and interactively calling them in the interpreter, moving to more complex stuff along the way, without worrying about "real" IO too soon (it's a bit more complex in Haskell).
You can learn almost any FP concept in Haskell (algebraic types, type classes, monads), and infinite streams are supported out-of-the-box (just using the definition of lists and lazy evaluation). There's an excellent testing tool (quickchek) and you'll get a lot of support from the type system. Furthermore, there's the community report (http://haskell.org/communities/), which is basically a single place where you can find almost every project, tool and activity related to Haskell.