I've been doing them to learn Haskell.<p>Haskell is actually very good for solving these types of problems. It supports infinite lists and lazy evaluation which help quite a bit.<p>I find that the best thing about Project Euler is being able to look at how other people have solved the problems - a great way to improve your own code.