<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: difference between parameter macro and positional macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57275#M12362</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;P&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The mainly reason is that parmbuff only can handle a macro variable &amp;amp;syspbuff and also need type some more word , whereas&amp;nbsp; call execute support many macro variable and more brief more readable.&lt;/P&gt;&lt;P&gt;But That is not to say I hate to use &amp;amp;syspbuff, Everyone has oneself&amp;nbsp; taste. I just show myself. &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;K&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 07 Dec 2011 03:22:49 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2011-12-07T03:22:49Z</dc:date>
    <item>
      <title>difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57254#M12341</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Kindly explain me the difference between positional macro and parameter macro.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ashwini&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Nov 2011 05:27:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57254#M12341</guid>
      <dc:creator>Ashwini</dc:creator>
      <dc:date>2011-11-30T05:27:59Z</dc:date>
    </item>
    <item>
      <title>difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57255#M12342</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can read about them at: &lt;A href="http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#macro-stmt.htm"&gt;http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#macro-stmt.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Primarily it is the diffference between identifying the variables passed to the macro either by position or by a keyword name followed by an = sign.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Nov 2011 05:34:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57255#M12342</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-11-30T05:34:06Z</dc:date>
    </item>
    <item>
      <title>difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57256#M12343</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;When you define the parameters to your macro you can make one or more of the parameters positional.&amp;nbsp; All positional parameters must come at the beginning of the parameter list, preceding any keyword parameters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You should only define parameters as positional when there usage is obvious from the purpose of the macro.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When you call the macro you can specify the value for the positional parameters without using their names.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The advantage of the keyword parameters is that you can specify a defualt value in the macro definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One of the user friendly features of SAS macro language is that when you call the macro you can reference any parameter using the keywords, whether the parameter is defined as positional or keyword.&amp;nbsp; When you call a macro using the keywords you can specify the parameters in any order.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Nov 2011 12:15:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57256#M12343</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-11-30T12:15:55Z</dc:date>
    </item>
    <item>
      <title>difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57257#M12344</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I prefer to use positional macro variable.&lt;/P&gt;&lt;P&gt;Because it can let you see both name of macro variable and value of macro variable, whereas parameter macro variable only can see value of macro variable. when you use this macro.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2011 07:40:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57257#M12344</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-12-01T07:40:01Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57258#M12345</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Actually with SAS macros you can use the parameter names in the calls whether they are defined as positional or keyword.&amp;nbsp; Here is an example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro square(x);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %sysevalf(&amp;amp;x*&amp;amp;x)&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%put The square of 4 is %square(x=4) ;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2011 15:05:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57258#M12345</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-12-01T15:05:09Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57259#M12346</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am unfamiliar with the term "parameter macro". &lt;/P&gt;&lt;P&gt;Parameter types I understand are Positional or Keyword.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Positional parameters cannot be defined with default values, which I normally expect to use.&lt;/P&gt;&lt;P&gt;Except - in the case of macro functions when the positional parameter is (almost) always present, and probably needs none of the "description" that the keyword of a keyword parameter provides.&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;macro called %PATH() provides the physical path of a logical reference&lt;/P&gt;&lt;P&gt;%put %path( sasuser ) ;&lt;/P&gt;&lt;P&gt;I consider to be self documenting, just as Tom's %square() needs no keyword for that parameter X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Of course the world always has exceptions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What XXXXXX makes this macro statement valid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro trouble( ok=1, trouble=999, real_trouble ) / XXXXXX ;&lt;/P&gt;&lt;P&gt;???????????????????????&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try&lt;/P&gt;&lt;P&gt;parmbuf&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2011 17:39:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57259#M12346</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2011-12-01T17:39:35Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57260#M12347</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Peter, I presume that you meant parmbuff, but that doesn't allow that macro to compile.&amp;nbsp; I couldn't find any option that did.&amp;nbsp; The only way I could get it to run was by changing the spelling and using an old style macro to turn the positional parameter into a keyword parameter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;macro rtrouble rtrouble=%&lt;/P&gt;&lt;P&gt;%macro trouble( ok=1, trouble=999, rtrouble )/des='trouble';&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2011 19:24:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57260#M12347</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-12-01T19:24:29Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57261#M12348</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Perhaps he meant in the CALL and not the definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;P&gt;%macro trouble( ok=1, trouble=999 ) / parmbuff ;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; length mvar $32 value $200;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do mvar='ok','trouble','syspbuff';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = symget(mvar);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put (mvar value) (=);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;%mend trouble;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;P&gt;%trouble(rtrouble);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;mvar=ok value=1&lt;/P&gt;&lt;P&gt;mvar=trouble value=999&lt;/P&gt;&lt;P&gt;mvar=syspbuff value=(rtrouble)&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2011 21:05:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57261#M12348</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-12-01T21:05:29Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57262#M12349</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi. Tom.&lt;/P&gt;&lt;P&gt;Actually it is also positional (Keyword) macro variable. You just use another macro variable to replace it. It will add some more unreadable thing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro square(y);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %sysevalf(&amp;amp;y*&amp;amp;y)&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%put The square of 4 is %square(x=4) ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Dec 2011 03:48:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57262#M12349</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-12-02T03:48:06Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57263#M12350</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Tom and Art&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;does this snip from my log explain?&lt;/P&gt;&lt;P&gt;1816&amp;nbsp; %macro trouble( ok=1, trouble=999, real_trouble ) / XXXXXX ;&lt;/P&gt;&lt;P&gt;ERROR: All positional parameters must precede keyword parameters.&lt;/P&gt;&lt;P&gt;ERROR: Extraneous information on %MACRO statement ignored.&lt;/P&gt;&lt;P&gt;ERROR: A dummy macro will be compiled.&lt;/P&gt;&lt;P&gt;1817&amp;nbsp; %macro trouble( ok=1, trouble=999, real_trouble ) / parmbuf ;&lt;/P&gt;&lt;P&gt;1818&amp;nbsp; %macro trouble( ok=1, trouble=999, real_trouble ) / parmbuf ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; compiler message goes away with XXXXX replaced by PARMBUF&lt;/P&gt;&lt;P&gt;Of course, there might be trouble if I don't define and use the macro correctly&lt;img id="smileywink" class="emoticon emoticon-smileywink" src="https://communities.sas.com/i/smilies/16x16_smiley-wink.png" alt="Smiley Wink" title="Smiley Wink" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;peter&lt;/P&gt;&lt;P&gt;(notice that my /parmbuf has only one "f")&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Dec 2011 23:33:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57263#M12350</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2011-12-02T23:33:10Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57264#M12351</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I liked my old-style macro substitution better!&amp;nbsp; Will you be at SGF this year?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Dec 2011 23:36:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57264#M12351</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-12-02T23:36:13Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57265#M12352</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;%macro square /parmbuff;&lt;/P&gt;&lt;P&gt; %do i=1 %to %sysfunc(countw(&amp;amp;syspbuff));&lt;/P&gt;&lt;P&gt;&amp;nbsp; %let x=%scan(&amp;amp;syspbuff,&amp;amp;i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; %put The square of &amp;amp;x is %sysevalf(&amp;amp;x*&amp;amp;x);&lt;/P&gt;&lt;P&gt; %end;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%square(2,3,4);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The square of 2 is 4&lt;/P&gt;&lt;P&gt;The square of 3 is 9&lt;/P&gt;&lt;P&gt;The square of 4 is 16&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Peter, I cannot seem to get your example to work? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR: All positional parameters must precede keyword parameters.&lt;/P&gt;&lt;P&gt;ERROR: Extraneous information on %MACRO statement ignored.&lt;/P&gt;&lt;P&gt;ERROR: A dummy macro will be compiled.&lt;/P&gt;&lt;P&gt;14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %macro square(act=,trouble) /parmbuf;&lt;/P&gt;&lt;P&gt;15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;act=y %then&lt;/P&gt;&lt;P&gt;16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do;&lt;/P&gt;&lt;P&gt;17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=3 %to %sysfunc(countw(&amp;amp;syspbuff));&lt;/P&gt;&lt;P&gt;18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let x=%scan(&amp;amp;syspbuff,&amp;amp;i);&lt;/P&gt;&lt;P&gt;19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put The square of &amp;amp;x is %sysevalf(&amp;amp;x*&amp;amp;x);&lt;/P&gt;&lt;P&gt;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %mend;&lt;/P&gt;&lt;P&gt;23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %square(act=y,y,2,3,4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 180&lt;/P&gt;&lt;P&gt;WARNING: Apparent invocation of macro SQUARE not resolved.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR 180-322: Statement is not valid or it is used out of proper order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Parmbuf (one f) never works for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro square(act=y) /parmbuff;&lt;/P&gt;&lt;P&gt; %if &amp;amp;act=y %then&lt;/P&gt;&lt;P&gt;&amp;nbsp; %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %do i=1 %to %sysfunc(countw(&amp;amp;syspbuff));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let x=%scan(&amp;amp;syspbuff,&amp;amp;i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;%if %sysfunc(anyalpha(&amp;amp;x))=0 %then %put The square of &amp;amp;x is %sysevalf(&amp;amp;x*&amp;amp;x);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %square(2,3,4);&lt;/P&gt;&lt;P&gt;The square of 2 is 4&lt;/P&gt;&lt;P&gt;The square of 3 is 9&lt;/P&gt;&lt;P&gt;The square of 4 is 16&lt;/P&gt;&lt;P&gt;25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %square(2,3,4,act=y);&lt;/P&gt;&lt;P&gt;The square of 2 is 4&lt;/P&gt;&lt;P&gt;The square of 3 is 9&lt;/P&gt;&lt;P&gt;The square of 4 is 16&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I see same as Tom.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SAS9.2 on linux.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 03 Dec 2011 00:12:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57265#M12352</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2011-12-03T00:12:21Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57266#M12353</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You are not getting error messages for the later %MACRO statements because SAS is ignoring everything until it gets the %MEND for first one it rejected.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 03 Dec 2011 02:34:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57266#M12353</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-12-03T02:34:17Z</dc:date>
    </item>
    <item>
      <title>difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57267#M12354</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;These were all ran in completely separate sessions for me...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 03 Dec 2011 02:43:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57267#M12354</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2011-12-03T02:43:48Z</dc:date>
    </item>
    <item>
      <title>difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57268#M12355</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;And the runs you posted DID get the error message.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 03 Dec 2011 02:53:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57268#M12355</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-12-03T02:53:28Z</dc:date>
    </item>
    <item>
      <title>difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57269#M12356</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Only the one for which I posted the log information along with the macro, where I used parmbuf (single f as posted).&amp;nbsp; Also tried with 2 f's but still failed to compile.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 03 Dec 2011 03:02:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57269#M12356</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2011-12-03T03:02:34Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57270#M12357</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;with apologies to FriedEgg, Tom and Art&lt;/P&gt;&lt;P&gt;I have crossed some wires:smileyshocked: and provided serious miss-guidance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARMBUFF needs both F&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the macro definition with /parmbuff&amp;nbsp; DOES cause errors when a "positional" parameter follows keyword parameters in the definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My failing memory should have recalled that is in the invocation that /parmbuff (in the definition) might allow this rule of order to be broken.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As in this (more tested) version &lt;/P&gt;&lt;P&gt;107&amp;nbsp; %macro trouble() /parmbuff ;&lt;/P&gt;&lt;P&gt;108&amp;nbsp;&amp;nbsp; %put&amp;nbsp; &amp;amp;syspBuff; &lt;/P&gt;&lt;P&gt;109&amp;nbsp; %mend ;&lt;/P&gt;&lt;P&gt;110&lt;/P&gt;&lt;P&gt;111&amp;nbsp; %trouble( ok=1, trouble=999, real_trouble );&lt;/P&gt;&lt;P&gt;( ok=1, trouble=999, real_trouble )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;extending the macro a little is instructive&lt;/P&gt;&lt;P&gt;69&amp;nbsp;&amp;nbsp; %macro trouble() /parmbuff ;&lt;/P&gt;&lt;P&gt;70&amp;nbsp;&amp;nbsp;&amp;nbsp; %put&amp;nbsp; &amp;amp;syspBuff; %* report the parameter list passed;&lt;/P&gt;&lt;P&gt;71&amp;nbsp;&amp;nbsp;&amp;nbsp; %put local environment _local_ (thats all !) ;&lt;/P&gt;&lt;P&gt;72&amp;nbsp;&amp;nbsp; %mend ;&lt;/P&gt;&lt;P&gt;73&lt;/P&gt;&lt;P&gt;74&amp;nbsp;&amp;nbsp; %trouble( ok=1, trouble=999, real_trouble );&lt;/P&gt;&lt;P&gt;( ok=1, trouble=999, real_trouble )&lt;/P&gt;&lt;P&gt;local environment _local_ (thats all !)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Although the macro appears to be invoked with parameters, none appear in the local environment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If a parameter is defined in the macro definition, then it would appear in _local_ , but a miss-placed positional parameter will cause syntax ERROR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;48&amp;nbsp;&amp;nbsp; %macro trouble(ok=1, trouble=999) /parmbuff ;&lt;/P&gt;&lt;P&gt;49&amp;nbsp;&amp;nbsp;&amp;nbsp; %put&amp;nbsp; &amp;amp;syspBuff; %* report the parameter list passed;&lt;/P&gt;&lt;P&gt;50&amp;nbsp;&amp;nbsp;&amp;nbsp; %put local environment _local_ (thats all !) ;&lt;/P&gt;&lt;P&gt;51&amp;nbsp;&amp;nbsp; %mend ;&lt;/P&gt;&lt;P&gt;52&lt;/P&gt;&lt;P&gt;53&amp;nbsp;&amp;nbsp; %trouble( ok=1, trouble=999, real_trouble );&lt;/P&gt;&lt;P&gt;ERROR: All positional parameters must precede keyword parameters.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 03 Dec 2011 11:55:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57270#M12357</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2011-12-03T11:55:08Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57271#M12358</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Art code should be &lt;/P&gt;&lt;P&gt;%trouble(&amp;nbsp; real_trouble ,ok=1, trouble=999);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just as ERROR said in log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR: All positional parameters must precede keyword parameters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BTW. I prefer to use call execute to instead of PARMBUFF, which only can supply one parameter.&lt;/P&gt;&lt;P&gt;Call execute can supply multiple parameters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2011 06:13:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57271#M12358</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-12-05T06:13:56Z</dc:date>
    </item>
    <item>
      <title>Re: difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57272#M12359</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; K&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the idea here was to indicate that "the rule demanding positional parameters appear before keyword parameters" can appear to be broken with a macro defined with option parmbuff and no parameters. I would not recommend this - but it would be valid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Dec 2011 15:24:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57272#M12359</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2011-12-05T15:24:34Z</dc:date>
    </item>
    <item>
      <title>difference between parameter macro and positional macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57273#M12360</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;P&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That would be broken by using parmbuff and &amp;amp;syspbuff. And I do not like &amp;amp;syspbuff any more. &lt;/P&gt;&lt;P&gt;I would use call execute to replace it now.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;K&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Dec 2011 03:29:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/difference-between-parameter-macro-and-positional-macro/m-p/57273#M12360</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-12-06T03:29:56Z</dc:date>
    </item>
  </channel>
</rss>

