gpt4 book ai didi

functional-programming - Scheme 的 "define"原语是命令式语言功能吗?为什么或者为什么不?

转载 作者:行者123 更新时间:2023-12-02 04:16:24 25 4
gpt4 key购买 nike

(define hypot
(lambda (a b)
(sqrt (+ (* a a) (* b b)))))

这是一种Scheme编程语言。

  • “define”创建变量和全局绑定(bind)
  • lambda 创建一个过程

我想知道“define”是否会被视为命令式语言功能!据我所知,命令式功能是静态作用域。我认为这是一个必要的功能,因为 "define" 创建一个全局绑定(bind),并且静态范围查看任何变量定义的全局绑定(bind),而在动态中它查看当前最活跃的绑定(bind)。

请帮我找到正确答案!!我想知道为什么或为什么不?

最佳答案

在Scheme程序中(define var expr)语句既是声明也是初始化。声明将新名称引入范围。声明和初始化以命令式和声明式语言的形式出现。

但是,如果同一个变量被定义两次,则 define 表现为赋值 - 这属于命令式范例。

关于functional-programming - Scheme 的 "define"原语是命令式语言功能吗?为什么或者为什么不?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33453284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com