我遇到了《 R编程的艺术》一书的编辑评论,并发现了这一点。
我立即对匿名函数的想法着迷,匿名函数是我在Python中以lambda函数的形式遇到的,但却无法使用R语言建立连接。
我在R手册中进行了搜索,发现了这一点
对于像我这样不是很长时间的程序员来说,这些事情以一种非常有趣的方式是“古怪的”。
在哪里可以找到更多R的书(而不必买书)?
感谢您分享您的建议
最佳答案
函数在R中没有名称。是否碰巧将函数放入变量不是函数本身的属性,因此不存在两种函数:匿名函数和命名函数。我们能做的最好的事情就是同意调用一个从未分配给变量匿名的函数。
可以将f
函数视为由其形式参数,主体和环境组成的三元组,可通过formals(f)
,body(f)
和environment(f)
单独访问该函数。该名称不是该三元组的任何部分。请参阅语言定义function objects的manual部分。
请注意,如果我们希望函数调用自身,则可以使用Recall
来避免知道函数是否已分配给变量。另一种选择是,函数主体必须知道该函数已分配给特定变量,并且该变量的名称是什么。也就是说,如果将函数分配给变量f
,则主体可以引用f
进行调用。 Recall
仅限于自调用函数。如果我们有两个相互调用的函数,则Recall
的对应对象不存在-每个函数必须命名另一个函数,这意味着每个函数必须已分配给变量,并且每个函数体都必须知道另一个变量名功能已分配给。
关于r - R编程的技巧: Where else could I find the information?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7754901/