Fun project but fuzzy on logic. "PhoneCALLs"
Dar Scott
dsc at swcp.com
Sat Sep 20 19:50:00 EDT 2003
On Saturday, September 20, 2003, at 05:32 PM, Andy Burns wrote:
> I re-plead "dumb-for-a-day"
Make this function first:
function catProduct sl1 sl2
...
end catProduct
This function takes two lists and creates the concatenation product.
That is, it creates another list that is all the ways a string can be
taken from the first list and concatenated with a string from the
second list. If there are n1 strings in the first list and n2 strings
in the second, the function will return a list of n1 * n2 strings.
Here is an of-the-top-of-my-head stab at that:
function catProduct sl1 sl2
local cp -- empty
repeat for each string s1 in sl1
repeat for each string s2 in sl2
put s1 & s2 & LF after cp
end repeat
end repeat
return cp -- keep final LF
end catProduct
The "identity" of this function is a list consisting of a single line
with the "identity" of '&', that is, empty. In Revolution, that is
simply LF.
Now suppose you built your array phoneCalls to return lines instead of
words. You could do this:
...
put LF into wordList -- identity
repeat for each char digit in phoneNumber
put catProduct(wordList, phoneCalls[digit]) into wordList
end repeat
-- optionally remove LF from end of wordList
...
Again off the top of my head.
This probably has some problems near the ends and near the corners; you
should tinker with very small trivial phone numbers.
This should get you started.
Whoops. I forgot to make this a recursion example. Oh, well. Maybe
next time.
Dar Scott
More information about the use-livecode
mailing list