turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- JMP User Community
- :
- Discussions
- :
- Discussions
- :
- Function overloads in JSL?

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Jul 20, 2012 9:22 AM
(2833 views)

Hey,

I've just started working with Functions in JSL. I am wondering if there is a way to create overload functions similar to C++/C#.

Even if JSL doesn't officially support it, there also may be a way to create pseudo overloads, such as with VBScript using CASE / WHERE. Has anyone tried this?

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Jul 24, 2012 11:35 AM
(4887 views)

There's no overloading; however, you can make arguments optional so that, for instance, f(a) and f(a, b) can call the same function:

f = Function({x, y=0}, sqrt(x * x + y * y));

You can also check the types of the arguments with functions like Is Number() within a nested if(), which sounds like your VB example.

2 REPLIES

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Jul 24, 2012 11:35 AM
(4888 views)

There's no overloading; however, you can make arguments optional so that, for instance, f(a) and f(a, b) can call the same function:

f = Function({x, y=0}, sqrt(x * x + y * y));

You can also check the types of the arguments with functions like Is Number() within a nested if(), which sounds like your VB example.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Jul 24, 2012 12:22 PM
(2760 views)

Thanks, I found a good discussion on optional arguments after doing a search. This provides the same capability I need. It sounds like optional arguments are created by providing default values for additional arguments. You can also give a List or an Associative array to the function, and change the bahavior of the function based on the number of values in the list or which keys are present in the associative array. Using a list requires inputs to be carefully placed in the correct order when calling the function, but with the associative array the arguments can be provided in any order.