python - 这里涉及什么概念? Python 和 R 中的示例。

标签 python r functional-programming

我正在努力寻找合适的语言来描述以下概念。也许有人可以帮助我。

这是一个关于编程的一般性问题,但我将使用 Python 和 R 作为示例。

在 Python 中,我们可以像这样把一些东西放入字典中

myData = {}
myData["myField"] = 14

例如,在 R 中,使用 data.table 包,我们可以编写如下内容

data = data.table(x = c(1, 2, 3))
data[,myField: = x^2]

它们做不同的事情,但比较它们每个的第二行。在 Python 中,"myField" 是一个字符串。在 R data.table 示例中,没有字符串。 R 示例有点不错,因为它可以节省您的输入时间,但如果要编写一个 myField 是变量的程序,它会给您带来麻烦。在 Python 中这很简单,因为你可以这样做

myData[myVariable] = 14

myVariable 被定义为另一个字符串。在 R 中,您也可以这样做,但必须使用不同的语法,这意味着您必须知道两种完全不同的语法编程方式。

我的问题:这叫什么?我知道它与范围规则有关(也许是元编程?),但无法找到合适的语言。任何人?

最佳答案

我相信这种编程语言的“特性”被称为“裸字符串”。

PHP 也有(弃用的)支持:Why is $foo[bar] wrong?

它被广泛认为是一个非常糟糕的想法,因为存在与变量或常量名称重叠的风险,并且在生产代码中绝对应该避免。然而,JavaScript 在避免这些问题的想法上有一个有趣的转折:

var obj = { key: "value" };

您可以在不使用引号的情况下在内联对象上定义键。这是有效的,因为您不能以另一种方式进行 - 键被解析为字符串,而不是变量名。我发现在只使用字典中预定义键的程序中,这是一个非常有用的权衡。作为引用,Python 版本需要引号,但允许您使用变量,如您所演示的:

obj = { "key": "value", key_var: "value" }

关于python - 这里涉及什么概念? Python 和 R 中的示例。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21385985/

相关文章:

r - 如何在 R 中编写递归组合函数?

python 3.4 : lambda function using a list

python - SIMULINK 和 PYTHON 之间的 TCP/IP

python - 使用 ctypes 为 C 函数传递和获取数组的问题

r - 如何使用值向量(例如 0 :9?)获得 2 x 2 矩阵的所有可能排列

r - 如何在 R 中将单个数字与矩阵绑定(bind)

Haskell 对值进行临时多态性,计算临时多态性列表的长度

javascript - 有没有什么很酷的方法来使用惰性求值序列来定义/计算 PI?

python - 如何使用 BeautifulSoup 抓取 Instagram

r - facet_grid ggplot2 中显示更改单 margin ?