是否可以在编程语言的命令行窗口中定义函数?

2024-06-01 00:21:48 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以在Matlab的命令行窗口中定义函数?在我看来不是。在

但对R来说,这是可能的。我想知道为什么会有这种区别,在编程语言的这种特性背后是否还有更多的话要说,或者我可以说只是解释性语言(比如Python、Bash等等)?在

谢谢!在


Tags: 函数命令行bash语言定义特性编程语言matlab
3条回答

您可以在Matlab的命令窗口中定义函数。它将像函数一样进行计算,但在下一个Matlab会话中它将不可用(尽管您可以像变量一样保存和加载它)。在

作为一个例子,我复制了@Dirk Eddelbuettel的函数

>> cubed = @(x)x^3;
>> cubed(2)
ans =
     8

编辑1 注意,在Matlab中,您只能将单语句函数定义为匿名函数,因此不能使用例如for循环(除非您使用evileval,它允许一切)。但是,如果嵌套匿名函数,则可以创建任意复杂的递归语句。因此,我想您确实可以在命令行窗口中定义任何函数。这可能不值得付出努力,我敢打赌这将是非常难以理解的。在

编辑2下面是一个递归嵌套匿名函数的示例,用于从Matlab central计算阶乘:

^{pr2}$

这并不是一种编程语言的特性,而是一种编程语言的实现。例如,存在C解释器和Lisp编译器。这通常称为REPL(Read Eval Print Loop),通常是解释实现的一个特性。在

是的,如果手头的语言支持它。下面是一个简单的R示例,在我使用的命令提示符下剪切和粘贴:

R> cubed <- function(x) x^3
R> cubed(2)
[1] 8
R> cubed(3)
[1] 27
R> 

相关问题 更多 >