惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
博客园 - 司徒正美
Last Week in AI
Last Week in AI
爱范儿
爱范儿
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
量子位
V
V2EX
博客园 - 叶小钗
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog

博客园 - Wisdom-zh

【关注】“诋毁” 一下博客园的模板 混淆器【修正版】 发一个混淆器, Nuva 写的 Win32Ole 演示【控制 Word】 Win32Api 演示【控制任务栏】 通用数据浏览示例 方便的 XML 数据绑定 Swap 函数 短路运算 语法兼容 之 运算符总结 这是什么语言的代码 Nuva 语法兼容 之 控制结构总结 设计模式 之 状态机模式 Nuva 示例代码(每日一帖)之 源代码统计 Nuva 示例代码(每日一帖)之 数据架构提取 Nuva 示例代码(每日一帖)之 ShowMessage Nuva 示例代码(每日一帖)之 异常处理 Nuva 示例代码(每日一帖)之 语法兼容 挑战 XSLT 最擅长的 XML 文档转换
延迟计算
Wisdom-zh · 2006-09-22 · via 博客园 - Wisdom-zh
<..========================================================
==                                                       ==
==                Macrobject Nuva Samples                ==
==                                                       ==
==      Copyright (c) 2004-2006 Macrobject Software      ==
==                                                       ==
==                  ALL RIGHTS RESERVED                  ==
==                                                       ==
==               http://www.macrobject.com               ==
==                                                       ==
========================================================..>

    延迟计算并不是为了提高计算的性能,而是这种计算能够创造出一种新型的和无限灵活的计算模型。
   
    延迟计算主要用在函数式语言中,是 Lambda 演算的某种起点。
   
    在 Lambda 演算的函数复合中,延迟计算起了关键的作用,试想如果函数作为参数被带入另一个函数时,如果立即参加计算,则函数复合就立即失去了意义,整个 Lambda 演算也就失去了意义。
   
    在 Python 中,集合或者序列的运算中,经常用到基于 Lambda 演算的延迟计算。
   
    Nuva 语言也有延迟计算的使用,主要用于循环和集合操作中,示例如下:
   

    <.
      var Set = ['a', "b", 'c']
      foreach (i = Set | i = 'b')
        ?? i
      end foreach
      
      var set1 = [i = Set | i = 'b']
      foreach (i = set1)
        ?? i
      end foreach
    .>

    
    上面的代码得到如下的结果:
   
    b
    b
   
    Nuva 语言中的延迟计算是 Lambda 的一种特例,其中要计算的延迟表达式只能有一个非函数自变量。
   
    在下一版本中,Nuva 语言将支持完整的 Labmda 演算,加入函数式语言的一些特征。