MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Listable functions with two brackets f[][] (SubValues)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg64909] Listable functions with two brackets f[][] (SubValues)
  • From: "Goyder Dr HGD" <h.g.d.goyder at cranfield.ac.uk>
  • Date: Tue, 7 Mar 2006 06:12:03 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

I would like to use a double bracket function f[][] as, I believe,
originally promoted  by David Park. The second bracket is called the
SubValues of f.  My problem is that I would like the second bracket to
be Listable. Is this possible.?

The following is a toy example by way of illustration.  Suppose I wish
to make a function that translates the graphics primitive Line. Then I
can make a function as follows and it works for one Line[].

In[1]:=
ClearAll[f]; 
f[vec_][a_Line] := Line[(#1 + vec & ) /@ a[[1]]]

In[3]:=
b = Line[{{1, 2}, {3, 4}, {5, 6}}]; 

In[4]:=
f[{1, 3}][b]

Out[4]=
Line[{{2,5},{4,7},{6,9}}]

However, if I have a list of Lines[]  it does not work because the
second bracket does not have the Attribute Listable. 

In[5]:=
c = {b, Line[{{2, 3}, {5, 6}, {9, 3}}]}; 

In[6]:=
f[{1, 3}][c]

Out[6]=
f[{1,3}][{Line[{{1,2},{3,4},{5,6}}],Line[{{2,3},{5,6},{9,3}}]}]

Attempts to make the function f[][] Listable fail because it makes the
first and not the second bracket Listable.

In[7]:=
SetAttributes[f, Listable]

In[8]:=
f[{1, 3}][c]

Out[8]=
{f[1],f[3]}[{Line[{{1,2},{3,4},{5,6}}],Line[{{2,3},{5,6},{9,3}}]}]

Is there a solution?

Thanks 
Hugh Goyder

-- 
This message has been scanned for viruses and
dangerous content by the Cranfield MailScanner, and is
believed to be clean.


  • Prev by Date: Re: MatrixForm to JPG
  • Next by Date: Re: Re: MatrixForm to JPG
  • Previous by thread: Re: Bizarre results with TreePlot
  • Next by thread: Re: Listable functions with two brackets f[][] (SubValues)