A strict list is essentially a normal list() but it does not
allow partial matching with $.
Usage
strict_list(...)
# S3 method for xfun_strict_list
$(x, name)
# S3 method for xfun_strict_list
print(x, ...)
Arguments
...
Objects (list elements), possibly named. Ignored in the
print() method.
x
A strict list.
name
The name (a character string) of the list element.
Value
strict_list() returns a list with the class
xfun_strict_list.
Details
To me, partial matching is often more annoying and surprising than
convenient. It can lead to bugs that are very hard to discover, and I have
been bitten for many times. When I write x$name, I always mean
precisely name. You should use a modern code editor to autocomplate
the name if it is too long to type, instead of using a partial name.
# NOT RUN {library(xfun)
(z = strict_list(aaa = "I am aaa", b = 1:5))
z$a # NULL!z$aaa # I am aaaz$b
z$c = "create a new element"z2 = unclass(z) # a normal listz2$a # partial matching# }