Special variables: Difference between revisions

From Rosetta Code
Content added Content deleted
Line 26: Line 26:
=={{header|J}}==
=={{header|J}}==


===special local variables===

The names <code>x y u v m n</code> are used as parameters in explicit J procedures:

y: right argument
x: (optional) left argument
u: left argument to an adverb or conjunction
v: right argument to a conjunction
m: left noun argument to an adverb or conjunction (value error if verb provided)
n: right noun argument to a conjunction (value error if verb provided)

Note that the result of an adverb or conjunction that uses either x or y and one of these other names is always a verb. In this case, x and/or y represent arguments passed to the derived verb.

These names may be used as regular names, but that is bad practice except in the context of debugging or illustration.

===special global variables===
In J 602: Names in locale z are in the path for all locales, including the default locale (base) -- these provide "language features":
In J 602: Names in locale z are in the path for all locales, including the default locale (base) -- these provide "language features":



Revision as of 13:27, 3 June 2011

Special variables is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

Special variables have a predefined meaning within the programming language. The task is to list the special variables used within the language.

AWK

There are two types of special variables within AWK: Control variables and Informative variables.

  • dollarint variables - The dollarint special variables represent fields within a record
  • ARGC - An informative variable that provides command line parameter information
  • ARGV - An informative array that provides command line parameter information
  • CONVFMT - A control variable that specifies the conversion format of numerical strings
  • ENVIRON - An informative array that contains the environment strings
  • FILENAME - An informative variable that provides the current input [filename]
  • FNR - An informative variable that provides the record number within the current file
  • FS - A control variable that specifies the input field separator
  • NF - An informative variable that provides the number of fields within the current record
  • NR - An informative variable that provides the total number of records processed
  • OFMT - A control variable that specifies the output format of numerical values
  • OFS - A control variable that specifies the output field separator
  • ORS - A control variable that specifies the output record separator
  • RLENGTH - An informative variable that provides the length of the currently matched substring
  • RS - A control variable that specifies the input record separator
  • RSTART - An informative variable that provides the start index of the currently matched substring
  • SUBSEP - A control variable that specifies the subscript separator for multidimensional arrays

J

special local variables

The names x y u v m n are used as parameters in explicit J procedures:

  y:  right argument
  x:  (optional) left argument
  u:  left argument to an adverb or conjunction
  v:  right argument to a conjunction
  m:  left noun argument to an adverb or conjunction (value error if verb provided)
  n:  right noun argument to a conjunction (value error if verb provided)

Note that the result of an adverb or conjunction that uses either x or y and one of these other names is always a verb. In this case, x and/or y represent arguments passed to the derived verb.

These names may be used as regular names, but that is bad practice except in the context of debugging or illustration.

special global variables

In J 602: Names in locale z are in the path for all locales, including the default locale (base) -- these provide "language features":


<lang j> names_z_ ARGV BINPATH CR CRLF DEL Debug EAV EMPTY FF FIXFONT FIXFONTWH IF64 IFCONSOLE IFGTK IFJ6 IFJAVA IFJHS IFUNIX IFWIN IFWIN32 IFWINCE IFWINE IFWINNT JVERSION LF LF2 Note PROFONT SYSPPC TAB UNAME adverb apply assert bind boxopen boxxopen break bx clear coclass cocreate cocurrent codestroy coerase cofullname coinsert coname conames conew conjunction conl copath coreset cutopen datatype def define do drop dyad each edit empty erase every exit expand fetch inv inverse items jcwdpath jhostpath jpath jpathsep jsystemdefs leaf list load loadd loadp mbopen mbsave monad nameclass namelist names nc nl noun on open pick require rows script scriptd scripts setbreak sign sminfo smoutput sort split startupconsole startupide table take tmoutput toCRLF toHOST toJ tolower toupper type ucp ucpcount utf8 uucp verb wcsize wd wdbox wdcenter wdclipread wdclipwrite wde wdfit wdforms wdget wdhandler wdinfo wdishandle wdisparent wdmove wdpclose wdqshow wdquery wdreset wdselect wdstatus winpathsep </lang>

Names in the locales j and jijs are available by explicity referencing those locales and are used to provide "ide features": <lang j> names_j_ BOXES BROWSER CONFIRMCLOSE DIRTREEX DISPLAYLOAD EPSREADER FORMAT FORMSIZES GetSystemMetrics IFJIJX INPUTLOG INPUTLOGFILE LOADED P2UPFONT PATHJSEP PATHSEP PDFREADER PRINTERFONT PRINTOPT PUBLIC READONLY SCRIPTS SHOWSIP SMPRINT SM_CMONITORS SM_CXVIRTUALSCREEN SM_CYVIRTUALSCREEN SM_XVIRTUALSCREEN SM_YVIRTUALSCREEN STARTUP SYSTEMFOLDERS TARGET USERFOLDERS WINPOS XDIFF addfname boxdraw buildpublic classwizard cleantable config cutnames deb debug demos dirmatch dltb edit editfind editinputlog editinputprompt exist extijs fexist fif filenewform fileprint fileprintsetup filex fixWINPOS formedit formeditrun forms fullname getinputlog getpath getscripts gettarget gettargetlocale globaldefs gridwizard help htmlhelp jpath lab lastactive loadp open openfiles origin pacman printfiles prints projectmanager save saveuserfolders scriptmake scripts wpreset wpsave wpset

  names_jijs_ 

EMPTY FIXFONTDEF FKEYS FTYPES IFIOX IFMAX IFREADONLY IFSAVED IFSHOW IMMX JIJS JIJSMAC JRECENT NEWUSER PPSCRIPT QFORMX RECENT RECENTFILE RECENTLOC RECENTMAX SCMP SMBLK SMDESK SMHWNDP SMINIT SMNAME SMPATH SMSEL SMSIZE SMSTYLE SMTEXT SMTORG aboutj boxfkeys boxskeys checkreadonly cleartemp close closeijs closeijx closewindows comparesvn create cutpara deb destroy exitijs filecase fkeycase fkeylist fkeyrun fkeyselect fkeyselect1 flerase flexist flopen flread flwrite foldpara foldtext getSMSEL getactsize getcascade getcascade1 getcascades getfile getformx getline getsaveas getscrollpos getselection getskey id2loc id2name id2names id2type ide_maximize ide_minimize ide_restore ifshiftkey iftempscript info intn jijs_aboutj_button jijs_actrl_fkey jijs_bctrl_fkey jijs_bctrlshift_fkey jijs_cancel jijs_close jijs_close_button jijs_dctrl_fkey jijs_default jijs_demos_button jijs_ectrl_fkey jijs_ectrlshift_fkey jijs_editconfigure_button jijs_editcopy_button jijs_editcut_button jijs_editdirmatch_button jijs_editexport_button jijs_editfif_button jijs_editfind_button jijs_editformedit_button jijs_editinputlog_button jijs_editlint_button jijs_editpaste_button jijs_editreadonly_button jijs_editredo_button jijs_editselectall_button jijs_editundo_button jijs_f1_fkey jijs_f1ctrl_fkey jijs_f1shift_fkey jijs_fctrl_fkey jijs_fctrlshift_fkey jijs_filecleartemp_button jijs_fileexit_button jijs_filenewclass_button jijs_filenewijs_button jijs_fileopen_button jijs_fileopensystem_button jijs_fileopenuser_button jijs_fileprint_button jijs_fileprintsetup_button jijs_filerecent_button jijs_fkeys_button jijs_forms_button jijs_gctrl_fkey jijs_hctrl_fkey jijs_helpconstants_button jijs_helpcontext_button jijs_helpcontrols_button jijs_helpdictionary_button jijs_helpforeigns_button jijs_helpgeneral_button jijs_helpgl2cmd_button jijs_helphelp_button jijs_helpindex_button jijs_helpphrases_button jijs_helpprimer_button jijs_helprelease_button jijs_helprelnotes_button jijs_helpuser_button jijs_helpvocab_button jijs_helpwdcmd_button jijs_helpwdover_button jijs_ictrl_fkey jijs_jctrl_fkey jijs_kctrl_fkey jijs_kctrlshift_fkey jijs_labadvance_button jijs_labauthor_button jijs_labchapters_button jijs_labs_button jijs_lctrl_fkey jijs_lctrlshift_fkey jijs_max_button jijs_mctrl_fkey jijs_nctrl_fkey jijs_nctrlshift_fkey jijs_octrl_fkey jijs_pctrl_fkey jijs_qctrl_fkey jijs_rctrl_fkey jijs_rctrlshift_fkey jijs_rundebug_button jijs_runfile_button jijs_runfiled_button jijs_runline_button jijs_runpacman_button jijs_runprojman_button jijs_runselection_button jijs_runwindow_button jijs_runwindowd_button jijs_save_button jijs_saveas_button jijs_sctrl_fkey jijs_sellower_button jijs_selminus_button jijs_selplus_button jijs_selplusline1_button jijs_selplusline2_button jijs_selsort_button jijs_seltoggle_button jijs_selupper_button jijs_selwrap_button jijs_tctrl_fkey jijs_tile_button jijs_tileacross_button jijs_tilecascade_button jijs_togglebox_button jijs_wctrl_fkey jijs_wctrlshift_fkey jrecent_cancel jrecent_close jrecent_enter jrecent_lb_button jrecent_open_button jrecent_run jrecent_run_button jrecent_rund_button jrecent_view_button lint marksavedid name2id new newijs newijx nounrep openijs parentname pathname pmovex qsmact qsmall qsmallforms qsmallijs qsmlastijs qsmlastxs qsmout qsmsize query quote rdist readid readid16 readonlydefault recent_open recent_put recent_read recent_run recent_save resizefont restorefont roundint runcompare runexport runfile runimmx0 runimmx1 runline runselection runwindow save saveas saveopenwindows scmp_cancel scmp_close scmp_close_button scmp_current_button scmp_original_button scmp_revert_button scmp_run scmp_show select_line select_text set_fkeys set_skey1 set_skeys setfontall setpnall setreadonly sh smappend smclose smfocus smfocusact smfocusout smgetsel smmove smopen smprompt smread smreplace smsave smscroll smsel smselact smselout smsetcmd smsetsaved smsetselect smwrite sysmodifiers tile tile2fit tile2fit1 tileacross tilecascade tileget todelim tofoldername togglebox togglereadonly togglexs tolist topara ucpboxdraw unboxfkeys unboxskeys winmax </lang>

Tcl

There are three major categories of special variables in Tcl: global variables special to the Tcl language, global variables set by Tcl-based interpreters, and local variables with special interpretations.

Language Globals

These variables are defined by the standard implementation of Tcl, and are present in all Tcl interpreters by default.

env
This global array is Tcl's interface to the process's environment variables.
errorCode
This global scalar holds a machine-readable description of the last error to occur. (Note that prior to Tcl 8.6, internally-generated exceptions often used NONE for this value.)
errorInfo
This global scalar holds a stack trace from the last error to occur.
tcl_library
This global scalar holds the location of Tcl's own internal library.
tcl_version, tcl_patchLevel
This global scalar holds the version of Tcl in use. From Tcl 8.5 onwards, these hold the same (detailed) value.
tcl_pkgPath
This global scalar holds a Tcl list of directories where Tcl looks for packages by default. This is used to initialize the auto_path global variable.
auto_path
This global scalar holds a Tcl list of directories where Tcl looks for packages (and auto-loaded scripts, though this facility is deprecated).
tcl_platform
This global array holds a description of the platform on which Tcl is executing.
tcl_precision
This global scalar holds the number of significant figures to use when converting a floating-point value to a string by default. From Tcl 8.5 onwards it should not be changed. (If you are thinking of using this, consider using the format command instead.)
tcl_rcFileName
This global scalar holds the name of a file to source when the interpreter starts in interactive mode.
tcl_rcRsrcName
This global scalar is only used on classic Mac OS (now deprecated); consult the documentation for more information.
tcl_traceCompile
If enabled at library configuration time, this global scalar allows tracing of the compilation of bytecode in the interpreter.
tcl_traceExec
If enabled at library configuration time, this global scalar allows tracing of the execution of bytecode in the interpreter.
tcl_wordchars, tcl_nonwordchars
These global scalars hold regular expression fragments that describe the current platform's interpretation of what is and isn't a word.

Interpreter Globals

These global variables are only features of the most common Tcl-based shells, tclsh and wish.

argc
This global scalar holds the number of arguments (after the script) passed to the Tcl interpreter.
argv
This global scalar holds a Tcl list of the arguments (after the script) passed to the Tcl interpreter.
argv0
This global scalar holds the name of the main script to execute that was passed to the Tcl interpreter, or the name of the interpreter itself in interactive mode.
tcl_interactive
This global scalar holds whether this interpreter is working in interactive mode (i.e., needs to print command prompts, run a REPL, etc.)
tcl_prompt1, tcl_prompt2
These global scalars allow customization of the prompt strings in interactive mode.
geometry

This global scalar holds the user-supplied preferred dimensions of the initial window. Only used by interpreters that load the Tk library.

Local Special Variables

This is a language feature of procedures.

args
This local variable holds the Tcl list of arguments supplied to the current procedure after all the other formal arguments have been satisfied. Note that it needs to be explicitly listed in the formal arguments and be last in the list of formal arguments to have this behavior.