This is a function that will generate an object that can serve as persistant
storage for pre-computed values. Each object contains a list called
.this_list
embedded within the enviroment it was created in.
Value
a list with five functions the all operate on the internal
.this_list
list object:
get()
returns the value of.this_list
update(value)
updates.this_list
with a modified listvalue
. Useful for adding several pieces of information at once.set(key, value)
sets a givenkey
(vector, with each element representing a level of nesting) to a particular value (can be a vector or list). If thekey
isNULL
,.this_list
is replaced withvalue
clear()
sets.this_list
toNULL
copy()
creates an independent copy of the object for modification.
Examples
if (FALSE) {
# note: asNamespace() gives access to internal functions. This is for
# demonstration purposes only. There is no guarantee for these functions to
# work.
global_list <- asNamespace("sandpaper")$.list_store()
global_list$set(key = NULL, list(a = 1, b = list(2)))
global_list$set(key = "c", "three")
global_list$get()
global_list$update(list(c = "THREE", d = global_list$get()))
global_list$get()
}