1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>SPECIAL Special Calling Syntax
</TITLE>
</HEAD>
<BODY>
<H2>SPECIAL Special Calling Syntax
</H2>
<P>
Section: <A HREF=sec_functions.html> Functions and Scripts </A>
<H3>Usage</H3>
To reduce the effort to call certain functions, FreeMat supports
a special calling syntax for functions that take string arguments.
In particular, the three following syntaxes are equivalent, with
one caveat:
<PRE>
functionname('arg1','arg2',...,'argn')
</PRE>
<P>
or the parenthesis and commas can be removed
<PRE>
functionname 'arg1' 'arg2' ... 'argn'
</PRE>
<P>
The quotes are also optional (providing, of course, that the
argument strings have no spaces in them)
<PRE>
functionname arg1 arg2 ... argn
</PRE>
<P>
This special syntax enables you to type <code>hold on</code> instead of
the more cumbersome <code>hold('on')</code>. The caveat is that FreeMat
currently only recognizes the special calling syntax as the
first statement on a line of input. Thus, the following construction
<PRE>
for i=1:10; plot(vec(i)); hold on; end
</PRE>
<P>
would not work. This limitation may be removed in a future
version.
<H3>Example</H3>
Here is a function that takes two string arguments and
returns the concatenation of them.
<P>
<PRE>
strcattest.m
function strcattest(str1,str2)
str3 = [str1,str2];
printf('str1 = %s, str2 = %s, str3 = %s\n',str1,str2,str3);
</PRE>
<P>
We call <code>strcattest</code> using all three syntaxes.
<PRE>
--> strcattest('hi','ho')
str1 = hi, str2 = ho, str3 = hiho
--> strcattest 'hi' 'ho'
str1 = hi, str2 = ho, str3 = hiho
--> strcattest hi ho
str1 = hi, str2 = ho, str3 = hiho
</PRE>
<P>
</BODY>
</HTML>
|