Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

Re: How to make delayed functions from text info

  • To: mathgroup at smc.vnet.net
  • Subject: [mg81170] Re: [mg81117] How to make delayed functions from text info
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Fri, 14 Sep 2007 03:43:15 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

t1 = {{"AA", {15.}, {19.}, 4.},
   {"AC", {17.}, {21.}, 4.}};

(ToExpression[#[[1]]][b_, t_] :=     
     Evaluate[If[#[[2, 1]] < t <= #[[3, 1]],
       b, 0]]) & /@ t1;

funcs = ToExpression[#[[1]] & /@ t1];

defs = Flatten[DownValues /@ funcs];

Column[defs]

defs[[1]]

Definition[Evaluate[funcs[[1]]]]


Bob Hanlon

---- P_ter <peter_van_summeren at yahoo.co.uk> wrote: 
> Hello,
> I have a list like this t1= {{"AA", {15.}, {19.}, 4.}, {"AC", {17.}, {21.}, 4.}}
> It means: AA[b_,t_]:= If[15<t<=19,b,0] Etc.
> The problem is that I have a few hundred of these elements in a list. But when I do:
> (ToExpression[#[[1]]][b_,t_]:= Evaluate[If[#[[2,1]]< t<= #[[3,1]],b,0]])& /@ t1
> I get out {Null, Null}, although AA and AC exist with ?AA,?AC
> But I want to see these delayed functions in a list:
> lst = {AA[b_,t_]:=If[15.<t<=19.,b,0],AC[b_,t_]:=If[17.<t<=21.,b,0]
> ..}
> I would like to say: lst[[1]] and get this delayed function. Is that possible?
> Also I wonder if ?(AA,AC) could be done, such that I get all the definitions in a row. Any idea?
> with friendly greetings,
> P_ter
> 



  • Prev by Date: Re: Distinguishing Strings from Symbols
  • Next by Date: Re: rationalize numerator of quotient
  • Previous by thread: Re: How to make delayed functions from text info
  • Next by thread: Re: How to make delayed functions from text info