Five programming problems every Software Engineer should be able to solve in less than 1 hour

Mike Bonner bonnmike at gmail.com
Sat May 9 19:11:16 EDT 2015


Ah k.  Yep. don't do it that way.

On Sat, May 9, 2015 at 5:08 PM, Mike Bonner <bonnmike at gmail.com> wrote:

> Number 4 is cool actually, but I wonder if there are reasons NOT to do it
> the way I'm doing it.
>
> Basically, I sort the lines of the list, descending, as text rather than
> numeric, then replace cr with empty.
>
> function genLargest pList
>    sort lines of pList descending
>    replace cr with empty in pList
>    return pList
> end genLargest
>
>
> On Sat, May 9, 2015 at 4:33 PM, Mike Bonner <bonnmike at gmail.com> wrote:
>
>> What is the recursion limit? I decided to do a speed test on larger
>> lists, and strangely, if I have a list that is 704 lines (I used lines
>> rather than items)  things work fine.  As soon as I hit 705, I get the
>> following:
>>
>> executing at 4:30:55 PM
>> Type Function: error in function handler
>> Object Button
>> Line return (line 1 of pList + withRecurse( line 2 to -1 of pList))
>> Hint withRecurse
>>
>> dropping back to 704, (no changes to my script)  and viola' it works
>> again.
>> Needless to say, if I'm hitting a recursion limit, a better error message
>> would be nice.  This is using 6.6.2.
>>
>> On Sat, May 9, 2015 at 3:55 PM, Geoff Canyon <gcanyon at gmail.com> wrote:
>>
>>> Problem 1
>>>
>>> Write three functions that compute the sum of the numbers in a given list
>>> using a for-loop, a while-loop, and recursion.
>>>
>>> Note that he doesn't provide any test cases, so for each problem I
>>> provided
>>> my own in a field, and then called the functions for each line in the
>>> test
>>> field, putting the output in another field. On to the functions:
>>>
>>> function sumFunction X
>>>   -- just because I could, not part of the original requirements
>>>    return sum(X)
>>> end sumFunction
>>>
>>> function sumFor X
>>>    repeat for each item i in X
>>>       add i to R
>>>    end repeat
>>>    return R
>>> end sumFor
>>>
>>> function sumWhile X
>>>    repeat while X is not empty
>>>       add item 1 of X to R
>>>       delete item 1 of X
>>>    end repeat
>>>    return R
>>> end sumWhile
>>>
>>> function sumRecurse X
>>>    if the number of items of X <= 1
>>>      then return X
>>>      else return item 1 of X + sumRecurse(item 2 to -1 of X)
>>> end sumRecurse
>>>
>>> Test data (first line was blank on purpose):
>>>
>>> 5
>>> 2,3,5,6,2,3,1
>>> -4,4
>>> -4,4,-5,5
>>>
>>> Test output (not entirely happy about the disparity in results for empty
>>> input):
>>> 0
>>> 5 5 5 5
>>> 22 22 22 22
>>> 0 0 0 0
>>> 0 0 0 0
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>
>>
>>
>



More information about the use-livecode mailing list