"lineAtOffset"?
Mark Waddingham
mark at livecode.com
Thu Oct 29 13:50:14 EDT 2015
On 2015-10-29 16:47, Richard Gaskin wrote:
> Given how handy chunk expressions are in LiveCode, I'm wondering if it
> might be even handier to see the introduction of a new function,
> something that could perhaps be called "lineAtOffset".
Okay so:
lineAtOffset(x, y, z)
Would be the same as:
line lineOffset(x, y, z) of y
Presumably with the rule that if x is not in the lines of y, the return
value is empty.
> Questions for you folks:
>
> 1. Is this as useful as I think it might be?
It certainly cuts down a few chars to type... In theory you only have to
scan the string once up until the first delimiter after the needle
string - so it would be more efficient (with a suitable implementation).
> 2. Is there a better name for the function?
Yes - I think there probably is. I'm not sure lineAtOffset() actually
reads quite as well as it could for this purpose.
> 3. Would consistency with wordOffset, trueWordOffiset, and itemOffset
> bog this down to the point where we'd either have to face an
...
> make two calls. But as I've noted before, sometimes I'm too easily
> satisfied and others may have more demanding requirements.
Consistency and completeness are important here. If we are going to
introduce a function for one chunk type, then chances are someone will
ask very quickly for one for another similar chunk type. So, it is
always important to plan to make sure that it makes sense for 'all
similar things'.
> 3. Is this worth submitting to the request queue?
You can put it in as an enhancement. However, I'd caution that there is
more thinking to do here both in terms of the naming and how it fits in
with future potential functionality.
Thinking of things as functions really isn't a good way to go - (sorry
to 'bang the drum' slightly) but LiveCode is an English-like language
and so we should be cautious adding any functions for which potential
English-like syntax has not been determined.
Indeed, I always find that thinking in terms of English-like syntax
tends to open eyes to potential variations.
For example adding 'lineAtOffset/wordAtOffset/itemAtOffset/...' seems
quite ugly. However, imagine the syntax like this:
the line containing x in y
the word containing x in y
the item containing x in y
...
Suddenly, a clear pattern starts to emerge and you can start to see what
you could do if you just add adjectives, and prepositions:
the last word containing x in y
the first line containing x in y after index 2
Anyway, just my thoughts at the moment.
Warmest Regards,
Mark.
--
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps
More information about the use-livecode
mailing list