首页 文章

递归对象和原子对象的定义是什么?

提问于
浏览
2

The R documentation

如果x是原子类型(或NULL),则is.atomic返回TRUE,否则返回FALSE . 如果x具有递归(类似列表)结构,则is.recursive返回TRUE,否则返回FALSE . 对于原子类型(“逻辑”,“整数”,“数字”,“复杂”,“字符”和“原始”)和NULL,is.atomic为true . 除了原子类型,NULL和符号(由as.name给出)之外,大多数类型的对象都被认为是递归的 .

根据以上所述,我认为向量是一个递归对象,但两个函数显示相反 .

函数(如 c )也是递归对象

那么R中递归对象和原子对象的定义是什么?

2 回答

  • 8

    对R中的一种对象进行递归意味着您可以将此对象作为条目保持其自己的类型 . 原子是相反的 . 向量是原子的,列表是递归的,因为您可以轻松检查 .

    原子结构,如矢量,将具有扁平结构 . 例如,以下代码将导致相同的结果:

    c(1,2)
    c(1, c(2))

    矢量中的所有元素也将具有相同的类型

    c(1, 'a')

    将强制1作为角色

    另一方面,列表可以具有嵌套结构

    list(1, list(2, 3))

  • 0

    根据我的理解,并纠正我,如果我错了,递归参数用于嵌套目录 . 例如,如果我必须使用自己的子目录'dir2'创建目录'dir1',我将使用递归参数

    dir.create(file.path(“dir1”,“dir2”),recursive = TRUE)

    同样,在删除目录及其所有内容时使用递归参数作为确认您正在执行该任务的确认 .

    unlink(“dir2”,recursive = TRUE)

相关问题