xfun (version 0.4)

strict_list: Strict lists

Description

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.

Examples

Run this code
# NOT RUN {
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
# }

Run the code above in your browser using DataLab