RE: Re: Function as an argument of the function

• To: mathgroup at smc.vnet.net
• Subject: [mg34698] RE: [mg34642] Re: [mg34638] Function as an argument of the function
• From: "DrBob" <majort at cox-internet.com>
• Date: Sat, 1 Jun 2002 04:29:06 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

Functions don't exist in Mathematica quite the way they do in most
languages.  What we have instead are transformation rules.

A rule that transforms Sin[Pi/2] into 1, for instance, might be an
UpValue of Pi or it might be a DownValue, SubValue, or NValue of Sin.
In fact it's none of these, so we can't know the relationship exists
other than by evaluating Sin[Pi/2].

We can check those possibilities, and we can look for the
NumericFunction attribute as Andrzej points out, but what Tomek really
wanted to do... he CAN'T really do.

Bobby

-----Original Message-----
From: Andrzej Kozlowski [mailto:andrzej at platon.c.u-tokyo.ac.jp]
To: mathgroup at smc.vnet.net
Subject: [mg34698] [mg34642] Re: [mg34638] Function as an argument of the function

Strictly speaking your request does not make sense, since in Mathematica

almost everything is a "function" in some sense or other. For example if

f is a symbol you can always "apply" it to 2 to get f[2], and so on.

However, I assume what yu mean is something in a very much narrower
sense, meaning either a built-in numeric function like Sin, or a user
defined function of the form f[x_]:= .... Well, something like this will

do the trick, (with various obvious limitations):

FunctionQ[f_] :=
Block[{x}, DownValues[f] != {} || MemberQ[Attributes[f],
NumericFunction]]

Now let's define a function:

f[x_] := x^2

and something that needs an argument to be a function:

g[f_?FunctionQ, a_] := f[a]

We get:

In[4]:=
g[Sqrt,4]

Out[4]=
2

In[5]:=
g[Sin,x]

Out[5]=
Sin[x]

In[6]:=
g[f,x]

Out[6]=
x^2

In[7]:=
g[p,x]

Out[7]=
g[p, x]

Andrzej Kozlowski
Toyama International University
JAPAN
http://platon.c.u-tokyo.ac.jp/andrzej/

On Thursday, May 30, 2002, at 03:55  PM, Tomek wrote:

> Hi.
> I have to write a short function in Mathematica. But I have one
> problem with  it. One of arguments of my function have to be a
> function of one variable.
> How can I check if the argument of the function is a function of one
> variable (I wish there's FunctionQ)?
>
>
>
>

• Prev by Date: RE: Re: Function as an argument of the function
• Next by Date: Re: Efficiency question
• Previous by thread: RE: Re: Function as an argument of the function
• Next by thread: Re: Re: Function as an argument of the function