Re: Combining several pure functions into a single pure function

*To*: mathgroup at smc.vnet.net*Subject*: [mg7295] Re: Combining several pure functions into a single pure function*From*: tburton at cts.com (Tom Burton)*Date*: Thu, 22 May 1997 09:20:01 -0400 (EDT)*Organization*: Brahea Consulting*Sender*: owner-wri-mathgroup at wolfram.com

On 20 May 1997 02:59:43 -0400, in comp.soft-sys.math.mathematica you wrote: >I am working with a little program that generates several pure >functions which are "Boolean" in nature -- i.e., each of them, when >applied to an argument, evaluates to True or False. These functions, >when they are initially produced, are connected with logical operators >-- for example: > > (Function[x,Plus[x]>9] && Function[x,Length[x]==4]) || > (Function[x,Plus[x]<3] && Function[x,Length[x]==6]) > >In this form, however, they are useless since, as a group, they do not >constitute a pure function and cannot be applied to an argument. >Thus, I need to convert the foregoing into a single pure Boolean >function, which would (using the above example) look like this: > > Function[x,(Plus[x]>9 && Length[x]==4) || > (Plus[x]<3 && Length[x]==6)] > Here's a slightly simpler form. Just stick [x] at the end of each function and then wrap the resulting expression in Function[x,#]: vv = Function[x, Function[x,Plus@@x>9] [x] && Function[x,Length[x]==4] [x] || Function[x,Plus@@x<3] [x] && Function[x,Length[x]==6] [x] ] By the way, I substituted Plus@@x for Plus[x] to make sense of this. Is x a list or not? I assumed is. Cheers, Tom Burton