Functional Programming Good or Bad Practice