MathGroup Archive 2005

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

Search the Archive

Re: Pure Function within a pure function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg59326] Re: Pure Function within a pure function
  • From: Wonseok Shin <wssbus at gmail.com>
  • Date: Fri, 5 Aug 2005 01:23:11 -0400 (EDT)
  • References: <dcsbi3$pub$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On 2005-08-03 23:11:15 -0700, ggroup at sarj.ca said:

> Hi,
> 
> I'm wondering if it is possible to define a pure function within a
> function, and if so, what syntax should I be using?
> 
> I have some data that I want to filter, say:
> 
> rawdata[[1]]=
> time1  pt1-1  pt1-2  pt1-3
> time2  pt2-1  pt2-2  pt2-3
> time3  aborted!
> 
> rawdata[[2]]=
> time1  pta-1  pta-2  pta-3
> time2  aborted!
> 
> I have a list of such data sets, and I want to apply a filter to remove
> the "aborted" lines to each set.  With a table command, this is fairly
> easy:
> 
> data = Table[
>          Select[rawdata[[i]],Length[#]==4&],
>          {i,Length[rawdata]}
>          ]
> 
> For readability (and lets face it, for pure asthetic value), I was
> hoping to convert this to a function which I could map onto my rawdata
> array.  I tried something like:
> 
> data = Select[#, Length[#]==4&]& /@ rawdata;
> 
> But this doesn't work.  I imagine the confusion is with the comparison
> function Length[#]==4&, but I'm having no luck figuring out how to make
> it less ambiguous.
> 
> Any pointers would be much appreciated.
> 
> Thanks!
> 
> PS: I'm using version 5.2 on Windows.

How about this?

Select[#, Length[#] == 4 &] & @@ {data}

It seems to work fine.  Note that I used @@ instead of /@.
-- 
Wonseok Shin
wssaca at gmail.com


  • Prev by Date: Re: Integral giving complex answer
  • Next by Date: Re: Expression transformation
  • Previous by thread: Re: Pure Function within a pure function
  • Next by thread: Re: Pure Function within a pure function