setf

 

 

Overview

The setf Special Form compiles a call to the saveImmediate function, which allows values to be stored in the specified ObjectRepository {aGor} as immediate values in the Repository Index.

The saveImmediate function replaces the pointer value with the immediate value from retrieved from the disk. Thus, if the Object Repository file is closed, the Repository Index is saved in its modified state. If another Object Repository references causes the Object Repository to be opened and the Repository Index to be loaded into virtual memory, the result of the saveImmediate from the last reference is persists in the Repository Index.

After the statement (setf gor "three" "mighty")

Any value may be stored in the ObjectRepository and associated with key. Both the key and the stored value may be of arbitrary complexity. An object may be removed from the ObjectRepository by storing the value #void in association with its previous key.

Usage

The setf function should be used on values that are referenced many times during an execution of an Lambda or function as it eliminates a disk access and will result in optimized access times. The Repository Index will be dynamically resized to accommodate immediate values and can grow to any size limited only by available virtual memory

 

Syntax


Expression:

(setf aGor key newValue)


Arguments Name Type Description
Argument:aGorObjectRepository An Object Repository
Argument:keySymbol The key to be associated with the new value.
Argument:newValueString The new value to be associated with the key.

Returns:

Returns the ObjectRepository



 

Examples

Here are a number of links to Lambda coding examples which contain this instruction in various use cases.

 

Argument Types

Here are the links to the data types of the function arguments.

ObjectRepository Symbol Boolean String

Here are also a number of links to functions having arguments with any of these data types.

++ += /= *=
-- -= abortTransaction addMethod
appendWriteln append apply attachLibrarian
badd balance bcompareEQ bcompareGE
bcompareGT bcompareLE bcompareLT bcompareNE
bdiv beginTransaction binaryInsert binaryNand
binaryNor binaryNot binaryNxor binarySearch
bitwiseAnd bitwiseNand bitwiseNor bitwiseNot
bitwiseNxor bitwiseOr bitwiseShiftLeft bitwiseShiftRight
bitwiseXor bmod bmul boolean
ccompareEQ ccompareGE ccompareGT ccompareLE
ccompareLT ccompareNE cdr character
checkPointTransaction clean clear closeLog
code commitTransaction compareEQ compareGE
compareGT compareLE compareLT compareNE
compare comparison compile compress
cons count date day
days360 debugBrowsableProcs debugDetective debugEval
debug defchild defclass define(macro)
define defmacro defmethod deforphan
defriend defun delete detachLibrarian
dimension disassemble display downcase
encode evalInSyncLocalContext eval exportCsv
exportSbf exportTab fdisplay fileClose
fileCopy fileDir fileDisplay fileEraseDir
fileErase fileExists fileMakeDir fileOpen
fileReadAll fileReadRecord fileRead fileSizeOf
fileWriteAll fileWrite filewriteln findBlock
find gc getGlobalValue getSymbolTable
globalBinding hashString hour icompareEQ
icompareGE icompareGT icompareLE icompareLT
icompareNE importCsv importSbf importTab
insert inside inspect integer
isAtom isBitVector isBoolean isBound
isByteVector isCharAlphabetic isCharAlphanumeric isCharLowercase
isCharName isCharNumeric isCharUppercase isCharWhitespace
isChar isCharacter isComplex isDate
isDictionary isDirectory isEqual isError
isEven isExact isFloatVector isIdentical
isImmediate isInexact isInside isIntegerVector
isInteger isLambda isMatrix isMember
isMoney isNegative isNull isNumberMatrix
isNumberVector isNumber isObjectVector isObject
isOdd isPair isPcodeVector isPositive
isString isStructure isSymbol isText
isTransaction isType isVector isZero
julian left length lisp
list loadModule loadRepository loadWorkspace
lock logConsole macroReplace makeQuotedList
makeQuotedSymbol member methodsOf mid
minute money month morph
ncompareEQ ncompareGE ncompareGT ncompareLE
ncompareLT ncompareNE new number
offset onError openLog pair
parent parse pointer proplist
proprecord putprop qt quit
refLibrarian ref remProp remove
rename replace rept reset
right run saveImmediate saveModule
saveObject saveRepository saveWorkspace second
setBlock setCar setCdr setLastCdr
set setf setq sizeof
sort sql stringCiEQ stringCiGE
stringCiGT stringCiLE stringCiLT stringCiNE
stringFill stringToBVector stringToVector string
submit substitute substringCiEQ substringCiGE
substringCiGT substringCiLE substringCiLT substringCiNE
substringEQ substringFill substringGE substringGT
substringLE substringLT substringNE substring
svmRegression symbolToTypeCode symbol systemCheck
system text time trim
type uniqueInsert unlock upcase
vectorFill version writelg writeln
year

Analytic Information Server (AIS)

AIS Component Systems

  • Smartbase Engine
  • QT C++ Libraries
  • MySQL Relational Database
  • AIS Lisp Libraries
  • Rapid Analytic Demo IDE