加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – LISP的代码 – 数据意识形态与高阶函数基本相同吗?

发布时间:2020-12-16 18:42:14 所属栏目:安全 来源:网络整理
导读:所以,我一直试图围绕clojure的代码作为数据方法的想法,这肯定有点令人困惑.看起来很像他们只是那种高阶函数.这两个概念有区别吗? 解决方法 代码作为数据是更进一步的. HOF为您提供代码作为数据,因为您可以将可执行块传递到其他可执行块,并组成它们.但是你无
所以,我一直试图围绕clojure的代码作为数据方法的想法,这肯定有点令人困惑.看起来很像他们只是那种高阶函数.这两个概念有区别吗?

解决方法

代码作为数据是更进一步的. HOF为您提供代码作为数据,因为您可以将可执行块传递到其他可执行块,并组成它们.但是你无法操纵块本身的结构.这有点像使用只有一个方法的对象(调用函数),但不会泄漏任何数据.

完全通用性,代码作为数据意味着代码的工作方式与您环境中的任何其他数据结构一样,其中包含您以编程方式操作的内容.所提到的同性性@coredump极大地促进了这一点,因为您可以对可应用于任何其他本机数据结构的代码块使用完全相同的操作和转换.但并非严格要求同质性.许多非同色语言提供元编程功能,可以让您获得类似的结果,如Scala的macros和quasiquotes(用于编译时代码操作)和toolboxes(用于运行时编译)或Python的ast.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读