On the nail!
That's exactly how I feel about using Haskell and it is the same feeling I had when I learned Lisp... for some reason you feel much more connected with the nature of the problem and therefore more aware / focused / cognisant of "what you are doing".

I found that part of the reason, at leat for me, was the need to write "efficient" code, and that means taking time to read the libraries to see what is already available and thus you come across more than one potential way to solve your problem and thus have to think about it more.

I think that Lisp and Haskell (and other languages that promote higher order programming) allow for powerful abstractions that result in functions like "map, filter, reject, fold" etc and thus remove theneed for manually writing loops in the code. That was part of the appeal for me, not coding loops!

:)
Sean.



On 19 March 2014 17:09, Dennis Raddle <dennis.raddle@gmail.com> wrote:
I was thinking about why it seems I can write Haskell code without bugs in a much easier way than imperative languages. Part of it is the strict type-checking, but I think there is something more. It's the potential for conciseness. I work hard when programming in Haskell to take advantage of language features that make my program concise. Somehow this leads me to think about it in a certain way. I know I'm on track as it gets smaller and smaller. And as it gets smaller, it leads me to think about my logic's cases and things like that. Certain patterns show up and I think about what those patterns mean for the structure of my problem.

By the time I'm done with all that, I've analyzed my problem much more thoroughly than I would ever do in an imperative language.

Dennis


_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners