How would you solve this 'interview' question in D?
Timon Gehr
timon.gehr at gmx.ch
Thu Jun 27 15:31:20 PDT 2013
On 06/27/2013 09:48 PM, John Colvin wrote:
> On Thursday, 27 June 2013 at 18:37:26 UTC, Timon Gehr wrote:
>> On 06/26/2013 10:51 PM, Gary Willoughby wrote:
>>> Just for a bit of fun, I saw this question posted on reddit the other
>>> day and wondered how *you* would solve this in D?
>>>
>>> http://stackoverflow.com/questions/731832/interview-question-ffn-n
>>
>> int f(int x){ return x?(x&1?x:-x)+(x>0?1:-1):0; }
>>
>> unittest{
>> foreach(x;int.min..int.max)
>> assert(f(f(x))==-x);
>> }
>
> That highly compound statement..... Why?
It is easy to see what it is doing this way.
> Surely you would never write
> anything like this either in production code (unless absolutely
> necessary) or in an interview?
>
Why not? The function fulfills the specification in a straightforward way.
> It's fine as a one-off, but a whole code-base full of this style would
> be horrifying.
I don't know. This depends on the kind of code base and the exact
meaning of 'this style'. There are many programming languages where it
is convenient/required to write every function in a single expression
and those are not horrifying at all.
More information about the Digitalmars-d-learn
mailing list