Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Type::Singleton

Type representing exactly one object

MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.

Syntax

testtype(obj, (t_obj))

Description

testtype(x, Type::Singleton(y)) is equivalent to bool(x = y).

The call testtype(obj, Type::Singleton(t_obj)) is equivalent to bool(x = y), but the latter is faster.

Type::Singleton can be used to create combined types, especially in conjunction with Type::Union, Type::Equation and other types expecting type information for subexpressions (see Example 2).

This type does not represent a property.

Examples

Example 1

Check, if x is really x:

testtype(x, Type::Singleton(x))

But the next call does the same:

bool(x = x)

Example 2

Type::Singleton exists to create special testing expressions:

T := Type::Union(Type::Singleton(hold(All)), Type::Constant):

With the type T the option All and any constant can be identified with one call of testtype:

testtype(4, T), testtype(hold(All), T), testtype(x, T)

But (e.g., in procedures) the following example works faster:

test := X -> testtype(X, Type::Constant) or bool(X = hold(All)):
test(4), test(hold(All)), test(x)

One way to test a list of options for syntactical correctness is the following:

T := Type::Union(
       // Name = "..."
       Type::Equation(Type::Singleton(hold(Name)), DOM_STRING),
       // Mode = n, n in {1, 2, 3}
       Type::Equation(Type::Singleton(hold(Mode)), 
                      Type::Interval([1,3], Type::Integer)),
       // Quiet
       Type::Singleton(hold(Quiet))
     ):
testtype((Name = "abcde", Quiet), Type::SequenceOf(T))

We only allow the values 1, 2, and 3 for Mode, however:

testtype((Quiet, Mode = 0), Type::SequenceOf(T))

Obviously, it would be a good idea to tell the user which options we could not grok:

error("Unknown option(s): ".expr2text(
        select((Quiet, Mode = 0), 
               not testtype, Type::SequenceOf(T))))
Error: Unknown option(s): Mode = 0
delete T, test:

Parameters

obj

Any MuPAD® object

t_obj

Any object to identify

Return Values

See testtype

See Also

MuPAD Functions

Was this topic helpful?