【发布时间】:2021-12-08 14:38:49
【问题描述】:
表达式和函数在形式上的区别是什么?我通过查看它知道区别,但我正在寻找对它的彻底理解。例如,展示一些来自 Scheme 或 Python 的示例:
; scheme
(display "hello") # expression
((lambda () (display "hello"))) # unnamed lambda
(define hi (lambda () (display "hello"))) # named lambda
# python
>>> print ('hello')
>>> lambda: print ('hello')
>>> hi = lambda: print ('hello')
在我的初步思考中,我认为不同之处在于:
- 函数具有名称并且可以被引用(尽管可以将表达式分配给变量?)
- 函数可以带参数(表达式可以带参数吗?)
- 一个函数可以有一个作用域/封装并包含多个语句。
【问题讨论】:
-
Python 中的函数可以通过语句 (def) 或表达式 (lambda) 来定义,它们并不是两个可比较的东西。
-
虽然是不同的东西,但它们都有共同的属性:它们评估为一个值,是可组合的和一流的。语句没有这些。
标签: function functional-programming expression