$10K coding deathmatch

Levi Pearson levi at cold.org
Fri Nov 3 13:25:43 MST 2006

On Nov 3, 2006, at 12:57 PM, Jonathan Ellis wrote:

> On Fri, 3 Nov 2006 11:05:42 -0700, "Levi Pearson" <levi at cold.org>  
> said:
>> Lisp is designed for building large, complex programs, not one-line
>> throwaway scripts, so comparing its verbosity to perl is kind of
>> silly.
> Hmm, I could substitute Java for Lisp there and be just as  
> accurate. :)

Indeed you could.  I imagine that if asked to program it in the style  
they use for their for-work perl programming, the size of a Java,  
Lisp, and Perl implementation of the core logic of this problem would  
be far closer than when attempting to write the shortest possible  
program in each of the languages.

But, just to be perverse, I did translate my Lisp program into a  
single line:
(loop(if(let*((l(let((s(read-line)))(loop for i = 0 then(1+ j)as j = 
(position #\Space s :start i)collect(subseq s i j)while j)))(n(length  
l)))(catch 'f(reduce(lambda(x y)(let((d(abs(-(parse-integer x)(parse- 
integer y)))))(unless(and(> d 0)(< d n))(throw 'f nil))y))l)t)) 
(format t "match~%")(format t "not a match~%")))

It's essentially the same logic, and could possibly be compressed  
further, but I really don't feel like doing that.


More information about the PLUG mailing list