r - 为什么 R 中有两个赋值运算符,`<-` 和 `->`?
问题描述
我知道如何使用<-
and ->
,并且有几篇 关于 赋值和箭头赋值之间区别的文章equals
,但我不知道什么时候更->
喜欢<-
。
似乎社区已经围绕使用<-
分配。
google R style-guide和 Hadley Wickam 的tidyverse R style-guide都没有在作业部分提到->
。
我很好奇导致 S/S-PLUS 开发人员放入右箭头 assign operator 的设计考虑因素->
。与or相比,在哪些设置中使用->
被认为更具可读性(或更容易输入)?<-
=
我不熟悉任何其他允许正确分配语义的语言。哪些语言在这方面启发了 R?
我正在寻找引用书籍/早期设计文档/用户手册/存档邮件列表或其他参考资料的答案,以确定 S 作者/设计师在使用前向箭头分配运算符时的意图。
解决方案
从新 S 语言练习的答案(Becker、Chambers 和 Wilks 1988),通过 Google 图书:
当您键入一个长表达式只是为了记住最后保存结果是一个好主意时,向右箭头允许您执行分配而无需重新键入该行。
这表明 S 用户直接在控制台中工作,没有大多数现代REPL /交互式环境中可用的行编辑功能......
一些考古学:我在谷歌图书的基础资料中四处寻找。相关书籍有三本:
- 褐皮书:S:数据分析和图形的交互式环境RA Becker,JM Chambers(CRC 出版社,1984 年)
- 扩展 S 系统,Becker 和 Chambers (Taylor & Francis, 1985)
蓝皮书:新 S 语言Becker、Chambers 和 Wilks(Wadsworth 和 Brooks/Cole 1988,但在 2018 年重新发行!!由 CRC Press)
->
棕皮书在正文中没有提到:
但它在附录中:
->
正文中提到的扩展 S 系统:
我不能搜索很多书,所以->
也可能在附录中的某个地方提到。
- 蓝皮书指的是右箭头,但实际上似乎有一个错字:
我将带下划线的红色段落解释为支持第一条带下划线的行中有错字,应该是->
而不是← ...
这是上面提到的练习答案的屏幕截图:
如果您想要一本 1985 年的书,您可以以 34.41 美元或 1070.99 美元的价格购买(但免运费!)...
推荐阅读
- python - 如何通过 Python 中的 id 呈现 django CMS 插件的 HTML
- asp.net-core - dotnet core 生成带有数据种子的迁移脚本
- c++ - 子模块:如何将 C++ 模块划分为子模块
- android - 房间数据库检查号码是否已被使用
- scala - Scala:声明类时如何自动调用方法?
- group-by - 在 Julia 中选择包含最少分组变量的 DataFrame 行
- awk - 用于将不同文件中同一行中多次出现的字符串模式替换为与字符串匹配的数字的 awk 脚本
- python - 在pygame中射击多个弹丸
- c++ - 从模板化方法调用模板方法的问题
- amazon-web-services - 将数据从 Elasticsearch 发送到 AWS 数据库