【发布时间】:2024-05-04 19:05:02
【问题描述】:
谁能向我解释一下为什么 Lua 中的匿名函数构造不是一个成熟的表达式?对我来说,这似乎很奇怪:它(稍微)违背了函数应该是一等对象的想法,并且(不经常但偶尔)对这种主要是经过深思熟虑的优雅语言造成不便。
示例,使用命令行 Lua,以及解决方法
Lua 5.3.3 Copyright (C) 1994-2016 Lua.org, PUC-Rio
> function(x) return x*x end (2)
stdin:1: <name> expected near '('
> square = function(x) return x*x end
> square(2)
4
【问题讨论】:
-
"它(稍微)违背了函数应该是一等对象的想法" 不,它不是。一等对象的性质和语法表达的性质彼此无关。
-
实际上(我知道这将这个论点推到了极限,不要太认真)我可以想象一种具有完全一流的新博客类型的语言,但没有任何语法构建一个。如果你有一个包含 blobop 的变量,那么你可以对它做任何你喜欢的事情,包括分配它。但这没用。恕我直言,要用作一流的对象(如果不是法律条文,精神上),您需要支持语法。
标签: function lua expression