• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Deleting last item of a List
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Deleting last item of a List


  • Subject: Re: Deleting last item of a List
  • From: Paul Berkowitz <email@hidden>
  • Date: Fri, 19 Nov 2004 14:05:39 -0800

Hanaan,

Nigel was not saying that

   set end of theList to newItem

was faster than

    set theList to theList & newItem

although it is, and for the reasons you specify. That's something many of
us, including Nigel, have known for a long time. But there are always new
readers here, and I'm sure they benefited from your discussion.

What Nigel said was:

"
  set x to end of myList -- get the last item in the list
  set x to last item of myList -- ditto

(For some reason, the former executes more quickly.)
"


And that's a completely different matter, and a new on on me.

All either of those statements does is assign a variable to the same (last)
member of the same list. Nothing else. No concatenation involved. No
building up of lists, new or old. Just assigning a variable.



--
Paul Berkowitz


> From: Hanaan Rosenthal <email@hidden>
> Date: Fri, 19 Nov 2004 16:21:55 -0500
> To: AppleScript Users <email@hidden>
> Cc: Nigel Garvey <email@hidden>
> Subject: Re: Deleting last item of a List
>
> The reason why using 'set end of' executes faster is because it creates
> a list with a slightly different use of memory.
>
> The two ways to create a list are:
> 1. set theList to theList & newItem
> 2. set end of theList to newItem
>
> Unless the item you are adding is a list by itself, the two options
> will create a seemingly identical list.
> The lists differ, however, in the way they are handled in memory, and
> this is where speed comes in.
> If you use method 1, the list is rebuilt and assigned a new place in
> memory every time you add an item. This makes the list take longer to
> be created, but it also makes the list faster to work with, since it is
> in one place in memory.
> Method 2 will create a list faster, but it will be spread out in
> memory, and therefor will be slower to work with.
>
> The ideal, I believe, is to create a list with method 2 and then use
> the copy command to copy it to another variable, therefore
> consolidating the list items to one place in memory:
>
> set myTempList to {}
> repeat...
> set end of myTempList to ...--creates a list quickly
> end repeat
> copy myTempList to myList --makes trhe list faster to work with
>
> Years ago, you could actually decide what type of list you want to
> create by using square brackets, which still works, but I am not sure
> what the implications are.
>
> Try this for fun:
> set myList to [1,2,3,4]
>
> I am certain that using this tip would save you at least a second or
> two of script execution over your lifetime.
> The lists and records chapter in my book covers this issue.
>
> Hanaan
>
> On Nov 19, 2004, at 4:00 PM, Nigel Garvey wrote:
>
>>   set x to end of myList -- get the last item in the list
>>   set x to last item of myList -- ditto
>>
>> (For some reason, the former executes more quickly.)
>>
>>
> --
> "This would clearly be an outstanding choice (if not THE best choice)"
> "Just plain excellent; the best out there. Hunker down with it and
> enjoy!"
> "it's the best guide to AppleScript since the original Language Guide.
> And it brings everything up to date."
>
> www.customflowsolutions.com/pages/applescriptbook.html
> Got your copy?
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Applescript-users mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Applescript-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Deleting last item of a List
      • From: Hanaan Rosenthal <email@hidden>
References: 
 >Re: Deleting last item of a List (From: Hanaan Rosenthal <email@hidden>)

  • Prev by Date: Re: Deleting last item of a List
  • Next by Date: Re: Deleting last item of a List
  • Previous by thread: Re: Deleting last item of a List
  • Next by thread: Re: Deleting last item of a List
  • Index(es):
    • Date
    • Thread