The COMPILE_CODE procedure creates and compiles an IDL function or procedure from a scalar string or string array.
            Note: Since the code is compiled at run-time, this can be slower than having the code saved in a file. However, COMPILE_CODE can be useful to avoid having to create a new file for a small algorithm, or in cases where you want to dynamically generate a function or procedure from user inputs or variables.
            Example
            Create an IDL function from a user-supplied math equation:
            equation = "sin(x^x)/2^((x^x - !pi/2)/!pi)"
            COMPILE_CODE, "function xyzzy,x & return," + equation + " & end"
            print, xyzzy([0.5, 1.5, 1.854, 2, 2.257, 2.4])
            IDL prints:
            0.786014     0.909691  0.000380822    -0.442807  -0.00132630     0.220963
            Syntax
            COMPILE_CODE, Code
            Arguments
            Code
            A scalar string or string array containing the IDL code for the function or procedure. If Code is a scalar string, then the code should consist of a series of IDL statements separated by ampersand "&" characters. If Code is a string array, then each element should contain a single line of code.
            Tip: When passing in a scalar string (consisting of IDL statements separated by "&"), you should avoid using IDL comments, which will cause syntax errors.
            Tip: For string arrays, blank lines and IDL comments will be automatically ignored.
            Keywords
            None.
            Examples
            Create an IDL function using a string array containing the lines of code:
            COMPILE_CODE, [ $
              "function xyzzy,x", $
              " ; lines with comments will be ignored", $
              "return, x + 2", $
              "end"]
            xyzzy(10)
            IDL prints:
            12
            Now create two IDL procedures on the fly:
            COMPILE_CODE, "pro myprint1,x & print,'Hello, '+x & end"
            COMPILE_CODE, [ $
              "pro myprint2,x", $
              " ", $ 
              "print,'Hello, ' + x", $
              "end"]
            myprint1, "world"
            myprint2, "IDL users"
            IDL prints:
            Hello, world
            Hello, IDL users
            Version History
            
            See Also
            CALL_FUNCTION, CALL_PROCEDURE, CALL_METHOD, EXECUTE