OT: Declared variables and the scripting competition.

Alex Tweedly alex at tweedly.net
Tue May 12 19:14:06 EDT 2009


The difficulty with this competition was always going to be that the 
quest was to find ".. the most elegant ..." - i.e. a subjective 
evaluation criterion.

So I thought about what would Mark W. find elegant - and decided I had 
to use (or over-use) variable declarations.

First, I had a version that started out ...
>
> function fib p
>   local f
>   local i
>   local b
>   local o
>   local n
>   local a
etc.

But this ran into a problem with the second  "  local c" because that 
was the same variabledeclared twice - surely not elegant.

Second, I tried it doing

>   local i
> ...
>   local c
>   global c
>   global i

but this causes errors ("variable shadows another") when I turned on 
strict compilation (which had to be a part og any answer that would meet 
Mark's satisfaction).

Then I realized this was the wrong approach - what I needed to do was 
use the more expansive form of declaration, and then simply let Rev find 
me the correct definition of the function.

> universal  fibonacci   -- somewhere in the univese this function must 
> already exist
and then I should be able to just call it, and let Rev find it and use 
it. :-)

So - I claim the shortest solution (either 1 line or 0 lines, depending 
how you count); unfortunately I can't verify the results until version 5 
or 6 of Rev, which will include the complete implementation of code 
sharing to allow finding universal handlers and variables.

-- Alex.





More information about the use-livecode mailing list