Re: List of patterns for which a function is defined?

• To: mathgroup at smc.vnet.net
• Subject: [mg24435] Re: [mg24378] List of patterns for which a function is defined?
• From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
• Date: Tue, 18 Jul 2000 00:58:34 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```I failed to notice a weakness in my previous reply in that
some of the arguments maybe strings (in your case "cat") and instead of the
string "cat" my function  returnsthe symbol cat. This problem can me fixed
as follows:

In[1]:=
ListOfPatternsDefined[a_] :=
Map[If[Head[a[#]] === a, ToString[#], #] &,
Cases[ToHeldExpression[ToString[Definition[a]]], a[x_] -> x, Infinity]]

In[2]:=
a[1] = 4; a[2] = 5; a["cat"] = "sam";

In[3]:=
ListOfPatternsDefined[a]
Out[3]=
{1, 2, "cat"}

Andrzej

on 7/14/00 9:43 AM, Andrzej Kozlowski at andrzej at tuins.ac.jp wrote:

> Here is a function that will accomplish this at least in your case and
> similar ones
>
> In[1]:=
> ListOfPatternsDefined[a_] :=
> Cases[ToHeldExpression[ToString[Definition[a]]], a[x_] -> x, Infinity]
>
> In[2]:=
> a[1] = 4; a[2] = 5; a["cat"] = "sam";
>
> In[3]:=
> ListOfPatternsDefined[a]
>
> Out[3]=
> {1, 2, cat}
>
>
> Andrzej

```

• Prev by Date: Re: Why doesn't Log[ E^x ] = x ?
• Next by Date: ExponentFunction
• Previous by thread: Re: List of patterns for which a function is defined?
• Next by thread: Re: List of patterns for which a function is defined?