zoukankan      html  css  js  c++  java
  • 函数式编程与异步编程

    函数式编程与异步编程

    函数式编程中,异步编程是惰性计算的根源,惰性计算是函数式异步编程的支持;

    1、高阶函数都具有计算构建的功能;

    2、函数式编程语言对异步编程的支持是通过惰性求值机制实现的;

    3、惰性计算的变量在语言或机制的底层需要保存;在接口层面,通常是作为高阶函数的参量,需要特定的修饰符修饰;

    4、惰性求值包含变量的惰性求事和计算的惰性求值,通常重点强调计算的惰性求值

    5、高阶函数作为算子,要区别是否包含惰性计算;

    无惰性计算的高阶函数:构建参量函数、配置高阶函数参量、调用执行;

    有惰性计算的函数:构建参量函数、配置高阶函数参量、调用高阶函数完成计算保存;

    在 Miranda 和 Haskell 中,缺省延迟函数实际参数的求值。在很多其他语言中,可以使用特殊语法明确悬置计算来延迟求值(比如 Scheme 的 "delay" 或 "force")

    swift对惰性求值的支持:@escaping

    在Scala里,通过lazy val来指定一个变量是惰性求值的

    函数式编程语言还提供惰性求值(Lazy evaluation,也称作call-by-need),是在将表达式赋值给变量(或称作绑定)时并不计算表达式的值,而在变量第一次被使用时才进行计算。

    某些编程语言缺省延迟表达式的求值,另一些提供函数或特殊语法来延迟求值。在 Miranda 和 Haskell 中,缺省延迟函数实际参数的求值。在很多其他语言中,可以使用特殊语法明确悬置计算来延迟求值(比如 Scheme 的 "delay" 或 "force"),更一般的通过把一个表达式包装在 thunk 中。表示这种明确延迟求值的对象叫做预期或承诺。

    https://www.cnblogs.com/feng9exe/p/8659699.html

    函数式结构树的构建过程只是计算的绑定的过程;从执行的角度看它有另一个术语“惰性求值”:

    函数式编程语言还提供惰性求值(Lazy evaluation,也称作call-by-need),是在将表达式赋值给变量(或称作绑定)时并不计算表达式的值,而在变量第一次被使用时才进行计算。

    某些编程语言缺省延迟表达式的求值,另一些提供函数或特殊语法来延迟求值。在 Miranda 和 Haskell 中,缺省延迟函数实际参数的求值。在很多其他语言中,可以使用特殊语法明确悬置计算来延迟求值(比如 Scheme 的 "delay" 或 "force"),更一般的通过把一个表达式包装在 thunk 中。表示这种明确延迟求值的对象叫做预期或承诺。

    The benefits of lazy evaluation include:

    • The ability to define control flow (structures) as abstractions instead of primitives.

    惰性求值的管理:处理函数的保存、处理函数的执行(apply)。

    https://www.cnblogs.com/feng9exe/p/9785638.html

    swift对惰性求值的支持:@escaping

  • 相关阅读:
    oracle级联删除
    sqlserver 中批量删除 换行符
    SpringBoot与jackson.databind兼容报错问题
    mvn 本地jar包 加入自己的maven仓库
    sql server 表2字段更新到表1,mysql
    sql server 修改表字段
    Spring Boot文件上传
    java如何实现多继承(实现:子类中二个方法,分别继承不同父类)
    SQL SERVER 数据库如何限制一列不能重复(已经有主键)
    SQL server 字段合并CAST(org_no AS VARCHAR(20))+CAST(page_no AS VARCHAR(20))+CAST(djlb_no AS VARCHAR(20)))
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10477713.html
Copyright © 2011-2022 走看看