A strict list is essentially a normal
list() but it does not
allow partial matching with
strict_list(...) as_strict_list(x) ## S3 method for class 'xfun_strict_list' x$name ## S3 method for class 'xfun_strict_list' print(x, ...)
Objects (list elements), possibly named. Ignored in the
The name (a character string) of the list element.
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 by it many times. When I write
x$name, I always mean
name. You should use a modern code editor to autocomplete
name if it is too long to type, instead of using partial names.
as_strict_list() return a list
with the class
attempts to coerce its argument
x to a list if necessary,
strict_list() just wraps its argument
... in a list, i.e., it
will add another list level regardless if
... already is of type
library(xfun) (z = strict_list(aaa = "I am aaa", b = 1:5)) z$a # NULL! z$aaa # I am aaa z$b z$c = "create a new element" z2 = unclass(z) # a normal list z2$a # partial matching z3 = as_strict_list(z2) # a strict list again z3$a # NULL again!
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.