0 0

Haskell中非尾递归产生的数组参与运算会是lazy的么?5

我所知道的,非尾递归返回数组可能被认为是“第一个元素依赖于其后的元素(虽然业务意义上未必如此)”,而导致即使用head只用第一个元素,也会导致整个数组被计算。
2009年4月10日 14:45

1个答案 按时间排序 按投票排序

0 0

实际上 Haskell 的 lazy 体现在语言的各个层面,不是只有尾递归才是 lazy 的。看看下面两个链接应该有帮助:

http://en.wikipedia.org/wiki/Eva ... n-strict_evaluation
http://en.wikibooks.org/wiki/Haskell/Laziness

2009年4月15日 22:06

相关推荐

    C#中的尾递归与Continuation详解

    在启用tailcall优化后,编译器会在生成IL代码时,将尾递归转换为循环,从而避免了额外的栈帧。不过需要注意的是,C#的尾递归优化仅适用于静态方法和实例方法,不适用于匿名方法、lambda表达式或方法组。Continuation...

    100%纯Haskell中的矩阵运算_Haskell_下载.zip

    这个压缩包“100%纯Haskell中的矩阵运算”显然提供了使用Haskell进行矩阵运算的相关资料,这可能包括源代码、示例、教程或者库的实现。下面我们将深入探讨Haskell和矩阵运算的相关知识。 首先,我们要理解Haskell中...

    A History of Haskell - Being Lazy With Class

    哈斯克尔(Haskell)是一种非严格的、纯函数式编程语言,其名称来源于美国数学家哈斯克尔·加里(Haskell Curry)。在1987年的功能编程语言和计算机架构会议上,众多学者聚集一堂,讨论了一个令人忧虑的现象:功能...

    haskell趣学指南

    `recursion.htm`会介绍如何定义递归函数,以及如何处理尾递归以优化性能。 7. **引入(introduction.htm)** 初学者可以从`introduction.htm`开始,了解Haskell的基本概念和环境设置,为后续的学习打下基础。 8. ...

    Haskell Notes For Professionals

    比如,字符串字面量的处理可能涉及字符编码问题,浮点数和整数字面量的处理可能涉及到对不同数值类型的内在表示和运算的考量,列表字面量的处理可能需要掌握Haskell的列表操作函数和模式匹配技巧。 第三章涉及到了 ...

    Haskell_Programming

    这种简化过程遵循特定的规则,例如惰性求值(lazy evaluation),这是一种延迟计算的技术,只有当结果真正需要时才会进行计算。 ##### 1.8 组合子 组合子是指没有自由变量的Lambda表达式。它们在函数式编程中扮演着...

    haskell教程

    Haskell入门教程通常会介绍如何在该语言环境中编写、理解和执行程序。 Haskell的关键特性之一是惰性求值(lazy evaluation),它推迟计算直到其结果真正需要时才进行。这种机制允许创建无限数据结构,例如无限列表...

    Programming-in-Haskell-2nd-Edition.pdf

    《Programming in Haskell》第二版是Graham Hutton撰写的一本关于Haskell编程语言的经典教材。这本书深入浅出地介绍了函数式编程的概念,并专注于Haskell这一纯函数式编程语言的细节和应用。对于想要理解函数式编程...

    Haskell High Performance Programming

    ### Haskell High Performance Programming #### Identifying Bottlenecks 在高性能编程中,识别性能瓶颈是至关重要的第一步。这一章深入探讨了Haskell中的多种技术来帮助开发者理解并优化代码的执行效率。 - **...

    Haskell Cookbook 英文无水印pdf

    《Haskell Cookbook》是一本专为Haskell编程语言爱好者和开发者准备的实用指南。这本书以英文版的形式提供,没有水印,确保了阅读的清晰度和舒适性。Haskell是函数式编程领域的重要语言,以其纯函数、惰性求值和类型...

    Real World Haskell PDF

    《Real World Haskell》是一本广泛认可的Haskell编程语言教程,旨在将这门函数式编程语言的理论与实践相结合,让读者能够在实际项目中运用Haskell。这本书的PDF版本是根据2015年3月1日的在线文档转制而成,确保了...

    haskell简明课件

    这些定义展示了模式匹配的使用,Haskell会根据提供的参数模式选择对应的函数定义。 2. **列表操作**:列表是Haskell中的基本数据结构之一。例如,冒泡排序中的交换函数可以定义为: ```haskell swap :: [Int] -...

    learn you a haskell

    ### 关于"Haskell"的关键知识点概述 #### 一、Haskell简介 - **定义与起源**:Haskell是一种纯函数式编程语言,以其简洁而强大的语法特性著称。 - **命名来源**:该语言的名字来源于美国数学家Haskell Brooks Curry...

    Haskell教程

    Haskell的设计受到了ML和其他函数式语言的影响,尤其是惰性求值(lazy evaluation)的特性,这使得Haskell在处理无限数据结构和并发编程方面有着独特的优势。 Haskell语言的初学者会发现,由于它与传统的命令式编程...

    Haskell趣味学习中文版

    例如,无限列表是一个在Haskell中很常见的结构,它允许你定义和使用理论上无限长度的列表,但只有当你需要访问列表的具体元素时,相关的计算才会执行。 ### Haskell核心概念 #### 列表和List Comprehension 在...

    Haskell 编程入门五星教程

    **Haskell 编程入门五星教程** Haskell 是一种纯函数式编程语言,以其严谨的数学基础、静态类型系统和惰性求值策略而闻名。它鼓励程序员采用声明式编程风格,强调数据流和计算的表达,而不是指令的执行顺序。本教程...

Global site tag (gtag.js) - Google Analytics