On Saturday 09 October 2010 03:25:48 Denis Koroskin wrote: > Well, I meant they are conceptually pure.
Yes, they are conceptually pure, just not actually pure. > But do believe you shouldn't be able to use writeln in code like that. Why > would you do it anyway? It's more or less like using assert just for a > console output: > > try { > assert(false, "message"); > } catch { > } > > Put your logging stuff into the body, not into the contracts. It's for debugging, not logging. It's highly useful for stuff like figuring out which a contract is failing. That's the main reason why contracts are only conceptually pure rather than actually pure. - Jonathan M Davis