
7stud wrote:
Michael Mossey
writes: In RWH, in the exercises at the end of the book,
There are no exercises at the end of the book.
Thanks for the help everyone. I wrote this post in the middle of the night when I had some insomnia, and I had just taken a sleeping medication, so I was basically "drunk." It's like trying to program drunk. My apologies for screwing up so many aspects of the post, but the gist of my question was answered, I think. Before I go further, let me ask again: can someone show me how to put the "School of Expression" code "on the library path" so I don't have to put it in the same directory where I'm working? I'm on Windows. I've tried the -i option in ghci and ghc, but ghci and ghc don't see the SOE code. I tried many ways of specifying the directory to -i: with quotes, without quotes, relative path, absolute path. ghc happily accepts every form I give it! But then fails to find SOE. I would like either to get the -i form working, or even better have ghc read an environment variable so it happens automatically every time it starts. But back to the gist of my question last night: I am aware that most examples of recursion presented in the books so far do their processing "as the recursion unwinds." In other words: length :: [a] -> Int length [] = 0 length (x:xs) = 1 + length xs This function goes deeper and deeper into the recursion before doing any calculation, then does all the sums "on the way back out." Being an imperative programmer, I keep trying to write loops that accumulate "on the way down", like this: length' :: Int -> [a] -> Int length' s [] = s length' s (x:xs) = length' (s+1) xs length :: [a] -> Int length xs = length' 0 xs I suppose both forms are valid, but the first form seems to be most natural in most situations I've encountered in the exercises. I'm working with "Real World Haskell", "Haskell School of Expression," and "Yet Another Haskell Tutorial." My strategy is to work each book's early chapters before going further in any of the books, so I get multiple "takes" on the material. Thanks, Mike