Dear Richard,
You can do:
#+BEGIN_SRC mathematica
f[x_] := x+3;
f[5]
#+END_SRC
Here are explanations: I actually put everything in the SRC block into a
Print[...].
So in the second example, what actually runs is
Print[f[x_] := x+3
f[5]]
This does not return any value. Because what it really does is print the
value of "f[x_] := x+3 f[5]"
Here is the code:
(concat
(mapconcat ;; define any variables
(lambda (pair)
(format "%s=%s;"
(car pair)
(org-babel-mathematica-var-to-mathematica (cdr pair))))
vars "\n") "\nPrint[\n" body "\n]\n")
If anybody has idea to improve it, I will be happy to see and work it out!
Best,
Yi
On Sat, Mar 14, 2015 at 7:09 AM John Kitchin <[email protected]>
wrote:
> I wonder if this is an output vs value issue on the return of the
> block. If you set :results output does anything change? or, is there a
> way to specify a return value? or specifically print something?
>
> Richard Stanton writes:
>
> > I recently saw this posting about org support for Mathematica. Thanks
> for writing this!
> >
> > Unfortunately, while I can get it to work for simple things (e.g., 2+3),
> even slightly more complex things don't seem to work. For example, suppose
> I'd like to define a function f(x) = x + 3, and then calculate f(5). In a
> MMA notebook, if I type
> >
> > f[x_] := x+3
> > f[5]
> >
> > I get the answer 8. If I try the same code in an org-mode code block,
> here's what happens:
> >
> > #+BEGIN_SRC mathematica
> > f[x_] := x+3
> > f[5]
> > #+END_SRC
> >
> > #+RESULTS:
> > : Null
> >
> > Am I missing something obvious here?
> >
> > Thanks very much.
> >
> > Richard Stanton
>
> --
> Professor John Kitchin
> Doherty Hall A207F
> Department of Chemical Engineering
> Carnegie Mellon University
> Pittsburgh, PA 15213
> 412-268-7803
> @johnkitchin
> http://kitchingroup.cheme.cmu.edu
>