next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Macaulay2Doc > The Macaulay2 language > system facilities > autoload(Symbol,String)

autoload(Symbol,String) -- arrange for a function to be loaded automatically

Synopsis

Description

i1 : fn = temporaryFileName()

o1 = /tmp/M2-50068-1
i2 : fn << "f = x -> x+1\n" << close

o2 = /tmp/M2-50068-1

o2 : File
i3 : autoload(f,fn)
i4 : code f

o4 = /builddir/build/BUILD/Macaulay2-1.3.1-r10737/Macaulay2/m2/autoload.m2:5:20-11:23: --source code:
          sym <- f := x -> (
               load filename;
               if f === value sym 
               then error("symbol '", toString sym, "' didn't acquire a new value in file '", filename, "'");
               (value sym) x
               );
          )
     | symbol     class              value                                                   location of symbol
     | ------     -----              -----                                                   ------------------                                                             
     | sym      : Symbol          -- f                                                       /builddir/build/BUILD/Macaulay2-1.3.1-r10737/Macaulay2/m2/autoload.m2:3:29-3:31
     | filename : String          -- "/tmp/M2-50068-1"                                       /builddir/build/BUILD/Macaulay2-1.3.1-r10737/Macaulay2/m2/autoload.m2:3:33-3:40
     | f        : FunctionClosure -- {*Function[/builddir/build/BUILD/Macaulay2-1.3.1-r1073. /builddir/build/BUILD/Macaulay2-1.3.1-r10737/Macaulay2/m2/autoload.m2:5:13-5:13
i5 : f 4
--warning: function f redefined

o5 = 5
i6 : removeFile fn