Having only a couple of days of practice programming Haskell (but having read lots of books and docs), I find myself writing very explicit low level code using inner “aux” functions (accumulators and loops). Then I force myself  to revise the code, replacing these aux functions with suitable higher-order functions from the library. However, I would like to use these higher order functions right away, without using low-level aux constructs, which is most likely caused by my very long history of imperative programming…

 

Is this the “normal” way of progressing in Haskell, or should I consider a different approach?

 

Thanks,

Peter