[metapost] Processing comma separated values

Dan Luecking luecking at uark.edu
Fri Feb 26 20:56:58 CET 2010

At 01:32 AM 2/26/2010, Taco Hoekwater wrote:
>Aditya Mahajan wrote:
>>What is the canonical way of processing a list of comma separated 
>>values in metapost. I want to write a helper macro for the boxes 
>>package so that

>>boxsep(a,b,c,d) = p ;
>>expands to
>>b.w - a.e = c.w - b.e = d.w - c.e = p ;
>I do not have time to write a full answer, but the way to
>process a list of argument values is something like this:
>def boxsep (text a) =
>    forsuffixes _a=a:
>         show _a;
>    endfor

I have already exchanged email with Aditya Mahajan,
but forgot to "Reply All" to include the list. The
results of our exchange were the following two examples:

%This works only for pair variables (which was the given case):
def boxsep (suffix A)(text T) =
   def _prev_suffix = A enddef;
   pair _dummy_pair;
   forsuffixes _S = T:
     _S.w - _prev_suffix.e = _dummy_pair;
     def _prev_suffix = _S enddef;

% This can generate equations for any list of two or
% more variables of the same type (for which subtraction
% makes sense):
def boxsep (suffix A,B) (text T) =
   def _prev_suffix = B enddef;
   B.w - A.e
   forsuffixes _S = T:
     = _S.w - _prev_suffix.e
     hide (def _prev_suffix = _S enddef;)

The main problem was to remember the previous suffix
so as to subtract it from the current one.

Best wishes,

Daniel H. Luecking
Department of Mathematical Sciences
Fayetteville, Arkansas

More information about the metapost mailing list