MathGroup Archive 1992

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

Search the Archive

Re: External commands into history buffer

  • To: mathgroup at yoda.physics.unc.edu
  • Subject: Re: External commands into history buffer
  • From: twj
  • Date: Thu, 19 Nov 92 10:20:53 CST

>As far as I am concerned I would prefer to have all the commands
>read in from the external file included in the internal history buffer.
>This would allow an easy reference to or editing of the read in commads
>without a proliferation of fractions of original command file if one
>does not want to edit and run it as a whole again and again. I did not
>have a look into this yet but if somebody did I would appreciate any
>suggestions, comments, etc.


Remember that the history "buffer" is just a collection of Mathematica
expressions.   You can alter it with whatever Mathematica commands you
wish.  For example you can make a version of Get which will update
In and Out:


GetHistory[ file_String] :=
        Block[{ coms, first},
                coms = ReadList[ file, Hold[ Expression]] ;
                first = $Line ;
                Unprotect[ In, Out] ;
                coms = Last[ Map[ GetHistoryAux, coms]] ;
                Out[ first] = coms ;
                Protect[ In, Out] ;
                coms
        ]

GetHistoryAux[ com_] :=
        Block[{res},
                $Line++ ;
                com /. Hold[ x_] :> SetDelayed[ In[ $Line], x] ;
                res = ReleaseHold[ com] ;
                Set[ Out[ $Line], res] ;
                res
        ]

In[7]:= !!test1   


(1
+ 5
)

Integrate[ f[x], {x,
        0,
        Infinity}]


In[7]:= GetHistory[ "test1"]

Out[9]= Integrate[f[x], {x, 0, Infinity}]

In[10]:= %%  


Out[10]= 6


Tom Wickham-Jones
WRI





  • Prev by Date: ListPlot3D
  • Next by Date: Integrate[z (1-z^2)^(-1/4),{z,-1,1}]
  • Previous by thread: External commands into history buffer
  • Next by thread: InputString bug, NeXT