
OK, I get the reference to currying now. A function of 2 variables can be seen as a function of one that returns another function of one. So a function of one variable can be seen as a function of no variables that returns a function of one. Very nice.
----- Original Message ----
From: Tim Chevalier
This was a bit baffling too. It appears that there's an implied argument to runTick. This also works and makes it more explicit. I suppose the compiler just works out that the only place to put the 'n' is after tick.
runTick :: Int -> (String,Int) runTick n = runState tick n
Not exactly. Look up "currying". (Writing out the same definition with the argument "n" specified explicitly like you did is called "eta-expansion", by the way.) Cheers, Tim -- Tim Chevalier* catamorphism.org *Often in error, never in doubt "My writing is all completely autobiographical. That's why I write lesbian vampire stories." -- Jewelle Gomez ____________________________________________________________________________________ Got a little couch potato? Check out fun summer activities for kids. http://search.yahoo.com/search?fr=oni_on_mail&p=summer+activities+for+kids&cs=bz