On 9/9/10 9:24 AM, Noel Welsh wrote:
On Thu, Sep 9, 2010 at 1:09 PM, David Van Horn<dvanh...@ccs.neu.edu>  wrote:
What!?

What can I say -- I have low standards.

Without a purpose statement, contract, or examples, it's difficult to know
what this code is supposed to do, much less say if it is doing whatever it
is supposed to do correctly.

'round these parts the term 'median' has widely accepted usage. It is
pretty obvious that the given function was intended to compute this
median and further more how it was going about doing so. For
production code I'd want some tests (which would have caught the
errors you noted) and a contract. I'm not too hung up on a purpose
statement for something so simple. But the question was about the
style and structure of the code as given, for which I responding that
it is indeed idiomatic and clear.

Sure, median has a well understood meaning, but the contract is subtle and the first attempt at writing it will likely be wrong. And beyond the errors I caught, there are other bugs that will surface if examples were written. As for the structure of the code as given, I would use helper functions in place of the `let'. The resulting code will be easier to read and the helper functions can be tested independently, making it easier to maintain and improve the likelihood that the whole program is correct; and correctness and ease of maintenance are important aspects of style.

David

_________________________________________________
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/users

Reply via email to