R编程中的副作用walk()函数

时间:2017-10-03 02:06:17

标签: r

我确定我的问题看起来有点基础,但不知怎的,我无法理解Walk()函数如何防止副作用的概念。
让我们在例子中说:

x (1,"a",3)
print(x) 

会导致副作用在控制台中打印值并更改环境。现在为了避免这种情况,我们用x%>%walk(print)下的purr包下的walk函数替换它以避免这种情况但仍然在控制台中显示值,这不是副作用吗?
这有什么不同?
此外,我们可以使用walk2函数并在一组参数上迭代函数并提供一组结果。现在这会改变系统的状态,这怎么不是副作用?

所以我的潜在疑问是walk()函数如何成功避免副作用

1 个答案:

答案 0 :(得分:2)

我不太确定walk()函数可以避免副作用。 来自文档:

describe user('bogus_user') do
  it { should exist }
  its('uid') { should eq 1002 }
  %w(bogus_user sftpusers airflow).each do |group|
    its('groups') { should include group }
  end
  its('home') { should eq '/var/ftp/pub/bogus_user' }
end

因此副作用发生,但输入被返回(无形)。

https://www.rdocumentation.org/packages/purrr/versions/0.2.3/topics/map

相关问题