Home
Manual
Packages
Global Index
Keywords
Quick Reference
|
functions in std.i - _
__xdr
|
primitive data types for various machines:
little-endians
__i86 Intel x86 Linux
__ibmpc IBM PC (2 byte int)
__alpha Compaq alpha
__dec DEC workstation (MIPS), Intel x86 Windows
__vax DEC VAX (H-double)
__vaxg DEC VAX (G-double)
big-endians
__xdr External Data Representation
__sun Sun, HP, SGI, IBM-RS6000, MIPS 32 bit
__sun3 Sun-2 or Sun-3 (old)
__sgi64 SGI, Sun, HP, IBM-RS6000 64 bit
__mac MacIntosh 68000 (power Mac, Gx are __sun)
__macl MacIntosh 68000 (12 byte double)
__cray Cray XMP, YMP
keyword, defined at i0/std.i line 2235
|
SEE ALSO:
|
set_primitives
|
_init_clog
|
_init_clog, file
initializes a Clog binary file. Used after creating a new file --
must be called AFTER the primitive data formats have been set.
builtin function, documented at i0/std.i line 2019
|
_init_pdb
|
_init_pdb, file, at_pdb_close
_set_pdb, file, at_pdb_close
initializes a PDB binary file. Used after creating a new file --
must be called AFTER the primitive data formats have been set.
The _set_pdb call only sets the CloseHook, on the assumption that
the file header has already been written (as in recover_file).
builtin function, documented at i0/std.i line 2008
|
SEE ALSO:
|
createb,
recover_file,
at_pdb_close
|
_jr
|
_jt, file, time
_jc, file, ncyc
_jr, file
are raw versions of jt and jc provided to simplify redefining
the default jt and jc functions to add additional features.
For example, you could redefine jt to jump to a time, then
plot something. The new jt can pass its arguments along to
_jt, then call the appropriate plotting functions.
There is a raw version of jr as well.
builtin function, documented at i0/std.i line 2383
|
_lst
|
list= _lst(item1, item2, item3, ...)
list= _cat(item_or_list1, item_or_list2, item_or_list3, ...)
list= _cpy(list)
list= _cpy(list, i)
length= _len(list)
item= _car(list)
item_i= _car(list, i)
_car, list, i, new_item_i
list= _cdr(list)
list= _cdr(list, i)
_cdr, list, i, new_list_i
implement rudimentary Lisp-like list handling in Yorick.
However, in Yorick, a list must have a simple tree structure
- no loops or rings are allowed (loops break Yorick's memory
manager - beware). You need to be careful not to do this as
the error will not be detected.
Lists are required in Yorick whenever you need to hold an
indeterminate amount of non-array data, such as file handles,
bookmarks, functions, index ranges, etc. Note that Yorick
pointers cannot point to these objects. For array data, you have
a choice between a list and a struct or an array of pointers.
Note that a list cannot be written into a file with the save
function, since it may contain unsaveable items.
The _lst (list), _cat (catenate), and _cpy (copy) functions
are the principal means for creating and maintaining lists.
_lst makes a list out of its arguments, so that each argument
becomes one item of the new list. Unlike Yorick array data
types, a statement like x=list does not make a copy of the
list, it merely makes an additional reference to the list.
You must explicitly use the _cpy function to copy a list. Note
that _cpy only copies the outermost list itself, not the items
in the list (even if those items are lists). With the second
argument i, _cpy copies only the first i items in the list.
The _cat function concatentates several lists together,
"promoting" any arguments which are not lists. This operation
changes the values of list arguments to _cat, except for the
final argument, since after _cat(list, item), the variable list
will point to the new longer list returned by _cat.
Nil, or [], functions as an empty list. This leads to ambiguity
in the argument list for _cat, since _cat "promotes" non-list
arguments to lists; _cat treats [] as an empty list, not as a
non-list item. Also, _lst() or _lst([]) returns a single item list,
not [] itself.
The _len function returns the number of items in a list, or 0
for [].
The _car and _cdr functions (the names are taken from Lisp,
where they originally stood for something like "address register"
and "data register" of some long forgotten machine) provide
access to the items stored in a list. _car(list,i) returns the
i-th item of the list, and i defaults to 1, so _car(list) is the
first item. Also, _car,list,i,new_item_i sets the i-th item
of the list. Finally, _cdr(list,i) returns a list of all the
items beyond the i-th, where i again defaults to 1. The form
_cdr,list,i,new_list_i can be used to reset all list items
beyond the i-th to new values. In the _cdr function, i=0 is
allowed. When used to set values, both _car and _cdr can also
be called as functions, in which case they return the item or
list which has been replaced. The _cdr(list) function returns
nil if and only if LIST contains only a single item; this is
the usual means of halting a loop over items in a list.
builtin function, documented at i0/std.i line 3054
|
SEE ALSO:
|
array,
grow,
_prt,
_map,
_rev,
_nxt
|
_map
|
_map(f, list)
return a list of the results of applying function F to each
element of the input LIST in turn, as if by
_lst(f(_car(list,1)),f(_car(list,2)),...)
interpreted function, defined at i0/std.i line 3148
|
SEE ALSO:
|
_lst
|
_not_cdf
|
_not_cdf(file)
is like _not_pdb, but for netCDF files.
interpreted function, defined at i0/std.i line 2032
|
_not_pdb
|
_not_pdb(file, familyOK)
returns 1 if FILE is not a PDB file, otherwise returns 0 after
setting the structure and data tables, and cataloguing any
history records. Used to open an existing file. Also detects
a file with an appended Clog description.
Before calling _not_pdb, set the variable yPDBopen to the value
of at_pdb_open you want to be in force. (For historical reasons
-- in order to allow for the open102 keyword to openb -- _not_pdb
looks at the value of the variable yPDBopen, rather than at_pdb_open
directly.)
builtin function, documented at i0/std.i line 1912
|
_nxt
|
item= _nxt(list)
return first item in LIST, and set LIST to list of remaining
items. If you are iterating through a list, this is the way
to do it, since a loop on _car(list,i) with i varying from 1
to _len(list) scales quadratically with the length of the list,
while a loop on _nxt(list) scales linearly.
interpreted function, defined at i0/std.i line 3185
|
SEE ALSO:
|
_car,
_lst
|
_prt
|
_prt, list
print every item in a list, recursing if some item is itself a list.
interpreted function, defined at i0/std.i line 3130
|
SEE ALSO:
|
_lst
|
_read
|
_write, file, address, expression
_read, file, address, variable
or nbytes= _read(file, address, variable);
are low level read and write functions which do not "see" the
symbol table for the binary FILE. The ADDRESS is the byte address
at which to begin the write or read operation. The type and number
of objects of the EXPRESSION or VARIABLE determines how much data
to read, and what format conversion operations to apply. In the
case of type char, no conversion operations are ever applied, and
_read will return the actual number of bytes read, which may be
fewer than the number implied by VARIABLE in this one case.
(In all other cases, _read returns numberof(VARIABLE).)
If the FILE has records, the ADDRESS is understood to be in the
file family member in which the current record resides.
builtin function, documented at i0/std.i line 2568
|
SEE ALSO:
|
openb,
createb,
updateb,
save,
restore,
sizeof
|
_rev
|
_rev(list)
returns the input list in reverse order
interpreted function, defined at i0/std.i line 3169
|
SEE ALSO:
|
_lst
|
|