Skip to Content
Beginning AppleScript®
book

Beginning AppleScript®

by Stephen G. Kochan
December 2004
Beginner
600 pages
13h 42m
English
Wrox
Content preview from Beginning AppleScript®

8.11. Specifying Patterns for Parameters

The last topic in this chapter illustrates the idea of specifying patterns for the parameters to your handlers. A pattern can be a list, a record, or even a more complicated combination of the two. For example, suppose you want to define a handler called makeDate that takes a list of three integer items representing the month, day, and year, respectively. You also want to return a date object for that specified date. Here's one way to do it:

on makeDate(D)
    set theMonth to item 1 of D as string
    set theDay to item 2 of D as string
    set theYear to item 3 of D as string
    return date  (theMonth & "/" & theDay & "/" & theYear)
end makeDate

A call to this handler might appear like so:

makeDate({7, 16, 2005})

The handler extracts each item from the list, converting each to a string in the process. A string of the form mm/dd/yyyy is then created, converted to a date, and returned.

If you were writing this handler for use in your programs, you would probably want to make sure that each of the integers passed to the handler is in the proper range.

Of course, your handler could have been written to take three separate integer arguments, but here you decide to have it take a list instead (otherwise, you would defeat the purpose of this example!).

You can tell AppleScript that the handler is expecting a three-item list as its argument by specifying a three-item list as the parameter when the handler is defined. It's done like this:

on makeDate({MM, DD, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Take Control of Your M-Series Mac

Take Control of Your M-Series Mac

Glenn Fleishman
What Successful Project Managers Do

What Successful Project Managers Do

W. Scott Cameron, Jeffrey S. Russell, Edward J. Hoffman, Alexander Laufer

Publisher Resources

ISBN: 9780764574009Purchase book