MathGroup Archive 2013

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

Search the Archive

Re: Text based interface: $PreRead does not work as manual says.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg130736] Re: Text based interface: $PreRead does not work as manual says.
  • From: alain cochard <al.1.cochard at gmail.com>
  • Date: Wed, 8 May 2013 04:10:12 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <km7ic8$ic1$1@smc.vnet.net> <kmabtp$qdf$1@smc.vnet.net>

On May 7, 9:53 am, Roland Franzius <roland.franz... at uos.de> wrote:
> Am 06.05.2013 08:25, schrieb Alain Cochard:
>
>
>
> > Here is an excerpt of
> >http://reference.wolfram.com/mathematica/ref/$PreRead.html
>
> >      Use as an alias for HoldForm:
>
> >      In[1]:= $PreRead = ReplaceAll[#, "hf" -> "HoldForm"] &
>
> >      Out[1]= #1 /. hf -> HoldForm &
>
> >      In[2]:= {hf[2 + 3], hf[2/3]}
>
> >                    2
> >      Out[2]= {2+3, -]}
> >                    3
>
> > Using the text based interface, I try to reproduce the above:
>
> >      Mathematica 9.0 for Linux x86 (64-bit)
> >      Copyright 1988-2012 Wolfram Research, Inc.
>
> >      In[1]:= $PreRead = ReplaceAll[#, "hf" -> "HoldForm"] &
>
> >      Out[1]= #1 /. hf -> HoldForm &
>
> >      In[2]:= {hf[2 + 3], hf[2/3]}
>
> >                         2
> >      Out[2]= {hf[5], hf[-]}
> >                         3
>
> >      In[3]:= hf
>
> >      Out[3]= hf
>
> >      In[4]:=?hf
>
> >      Global`hf
>
> > Other Mathematica version, other computer:
>
> >     Mathematica 8.0 for Linux x86 (32-bit)
> >     Copyright 1988-2011 Wolfram Research, Inc.
>
> >     In[1]:= $PreRead = ReplaceAll[#, "hf" -> "HoldForm"] &
>
> >     Out[1]= #1 /. hf -> HoldForm &
>
> >     In[2]:= {hf[2 + 3], hf[2/3]}
>
> >                        2
> >     Out[2]= {hf[5], hf[-]}
> >                        3
>
> >     In[3]:= hf
>
> >     Out[3]= HoldForm <<<< so here it understands a litte bit...
>
> > And I get the same output as just above, with
>
> >     Mathematica 7.0 for Linux x86 (64-bit)
> >     Copyright 1988-2009 Wolfram Research, Inc.
>
> > on yet another computer.
>
> > However, it does work as expected when using the front end interface.
>
> > Is this normal?
>
> > I spent some time in the documentation and on the web for an alternative
> > of $PreRead but did not find anything, apart from the obsolete "Alias"
> > Mathematica function; I found a documentation here:
> >http://reference.wolfram.com/legacy/v4-fr/OtherInformation/Alias_alma...
> > I tried the simple example which is provided, but it does not react as
> > it should, neither with the text based nor the front end interfaces...
>
> > Is there something I can do to restore the correct behavior of $PreRead,
> > or use Alias, under the text based interface or is there an equivalent
> > way for defining such aliases?
>
> $Pre is working on the expression form of input, $PreRead on its input
> string form. enProcessing the string form of input into raw expression
> form, elemetary simplification by ordering takes place.
>
> The lexicographic ordering of arithmetic expressions automatically
> performs counting equal subexpressions by implied attributed rules for
> Plus und Times like: OneIdentity, Flat and Orderless.
>
> Consider the following
>
> In[10]:= $PreRead :=
> (ReplaceAll[#, {"+" :>  "-", "hf" -> "HoldForm"}] &)
>
> In[11]:=
> hf[a + 2 a]
>
> Out[11]= \!\(\*TagBox[RowBox[{"a", "-",RowBox[{"2", " ", "a"}]}],
> HoldForm]\)
>
> --
>
> Roland Franzius

Thanks for answering, and sorry that I do not understand what you are
saying.

At any rate, if I try your example, I do not get the same as you.


	Mathematica 7.0 for Linux x86 (64-bit)
	Copyright 1988-2009 Wolfram Research, Inc.

	In[1]:= $PreRead := (ReplaceAll[#, {"+" :>  "-", "hf" -> "HoldForm"}]
&)

	In[2]:= hf[a+2a]

	Out[2]= hf[3 a]

Again, I am using -- and insist on using -- the text based interface.

As far as I understand from the documentation
<http://reference.wolfram.com/mathematica/tutorial/
UsingATextBasedInterface.html>
the text based interface should provide the same capabilities as the
front end interface, except when it comes to graphics functionality
or dynamic interactivity, none of which being the case here.

AC




  • Prev by Date: What happend to Image?
  • Next by Date: Re: How Random works?
  • Previous by thread: Re: Text based interface: $PreRead does not work as manual says.
  • Next by thread: Re: Mathematica-assisted learning was .. Re: Speak errors