Re: Combining several pure functions into a single pure function
- To: mathgroup at smc.vnet.net
- Subject: [mg7297] Re: [mg7262] Combining several pure functions into a single pure function
- From: wself at viking.emcmt.edu (Will Self)
- Date: Thu, 22 May 1997 09:20:08 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Bob Lawrence asked an interesting question about creating disjunctions
and conjunctions of pure functions. In essence, I think, what is required
is a function disj that would accept two pure functions as arguments and
return a pure function. The pure function returned would itself accept
two Boolean inputs and return their disjuntion. To get around Bob's
difficulty, we can use Literal to prevent too-early evaluation of Function.
In[59]:= disj[f1_,f2_]:=Function[x,Evaluate[f1[x] || f2[x] /.
Literal[Function[a_,b_]]->Function[a,b][x]]]
In[60]:= g1=Function[x,x>0]
Out[60]= Function[x, x > 0]
In[61]:= g2=Function[y, y<2]
Out[61]= Function[y, y < 2]
In[62]:= disj[g1,g2]
Out[62]= Function[x$, x$ > 0 || x$ < 2]
In[63]:= h=#<3&
Out[63]= #1 < 3 &
In[64]:= disj[g1,h]
Out[64]= Function[x$, x$ > 0 || x$ < 3]
Will Self
Montana