MathGroup Archive 2011

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

Search the Archive

Re: C/Fortran-like #include functionality for large expressions?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123570] Re: C/Fortran-like #include functionality for large expressions?
  • From: David Bailey <dave at removedbailey.co.uk>
  • Date: Sun, 11 Dec 2011 03:49:12 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <jbvjbn$isb$1@smc.vnet.net>

On 10/12/2011 12:29, Frank Iannarilli wrote:
> Hi All,
>
>
> Is there any C #include or similarly Fortran INCLUDE functionality I can gain within Mathematica?  The purpose is to enhance readability of very large function definitions or Manipulate[] invocations, by splicing-in "chunks" of code (expressions) defined in separate cells.
>
> Here's an example of an attempt that doesn't work:
>
> testInclude[] :=
>   Module[{a}, a = 2.; ToExpression[p];  Print[a]]
>
> p = "a=3."     // The expression chunk to "include"
>
> testInclude[]
> // would like this to return "3", but stuck returning "2".
>
> Thanks,
> Frank
>
>
Your example didn't work because a is local to the Module, so in effect 
you executed a line of the form:

a$17=2.;ToExpression["a=3."];Print[a$17]

(The number 17 is arbitrary - see the help for the Module function)

If the expression that you want to include does not contain variables 
that should be local, the solution is trivial - just assign them to a 
variable:

subst=Hold[a=3.]

(no need to convert to string) and insert the expression as needed in 
your function as ReleaseHold[subst].

Getting the replacement a -> a$17 would be a lot harder, and is 
essentially pointless because a should presumably be global.

David Bailey
http://www.dbaileyconsultancy.co.uk




  • Prev by Date: Re: While Loop
  • Next by Date: Re: C/Fortran-like #include functionality for large expressions?
  • Previous by thread: Re: C/Fortran-like #include functionality for large expressions?
  • Next by thread: Re: C/Fortran-like #include functionality for large expressions?