• 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: Hanaan Rosenthal <email@hidden>
  • Date: Fri, 19 Nov 2004 17:44:19 -0500

Yup, you're right. Different matters.
Anyway, good discussion.

Hanaan

On Nov 19, 2004, at 5:05 PM, Paul Berkowitz wrote:

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


--
"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

References: 
 >Re: Deleting last item of a List (From: Paul Berkowitz <email@hidden>)

  • Prev by Date: Re: Deleting last item of a List
  • Next by Date: get "type" of disk i.e. CD, DVD, zip...
  • Previous by thread: Re: Deleting last item of a List
  • Next by thread: Re: Deleting last item of a List
  • Index(es):
    • Date
    • Thread