`
jeffenchung
  • 浏览: 11879 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转]为什么我们要学习Haskell这样的编程语言

阅读更多
转外刊IT评论:为什么我们要学习Haskell这样的编程语言

摘录:
高阶函数(Higher Order Functions)

在Haskell语言中,最多的被反复使用的函数都是高阶函数(higher order functions)——能以函数作为参数、能返回函数的函数。这使得它们具有固有的灵活性。下面是一个不太灵活的函数:它计算一个数组里等于某个值的元素的个数。

// 不灵活
function countMatching(array, value) {
    var counted = 0
    for (var i = 0; i < array.length; i++) {
        if (array[i] == value)
            counted++
    }
    return counted
}

// == 2
countMatching([1,3,3,4,5], 3)
它不灵活,因为它只能用来计算一个数组中精确匹配某个值的元素的个数。

下面是一个灵活一些的版本,它能接受一个函数,而不是一个值,作为参数。我们可以用它来对任何数据、任何对象进行比较。

// more flexible
function count(array, matching) {
    var counted = 0
    for (var i = 0; i < array.length; i++) {
        if (matching(array[i]))
            counted++
    }
    return counted
}

// == 2, same as first example
count([1,3,3,4,5], function(num) {
    return (num == 3)
})

// == 2, now we can use our functions for ANY kind of items or match test!
count([{name:"bob"}, {name:"henry"}, {name:"jon"}], function(obj) {
    return (obj.name.length < 4)
})
因为高阶函数更具灵活性,你就更少有机会去写它们,因为你一旦你写成一个,你可以它应用到各种不同的情况中。
分享到:
评论

相关推荐

    HASKELL函数编程讲义

    Haskell是一种纯函数式编程语言,它以其静态类型系统、惰性求值和强类型检查而闻名。在学习Haskell的过程中,掌握函数编程的基本概念以及Haskell的特性至关重要。以下是对压缩包内各文件内容的详细解读: 1. **2....

    Haskell 编程入门五星教程

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

    新一代编程语言Python、MATLAB和Haskell.zip

    Haskell则是一种纯函数式编程语言,强调代码的可读性、安全性和并行性。Haskell的静态类型系统和惰性求值策略保证了程序的正确性和效率。函数式编程强调无副作用的纯函数,这使得Haskell代码易于测试和维护。Haskell...

    Rust 和 Haskell 函数编程

    在编程世界中,Rust 和 Haskell 是两种备受关注的函数式编程语言,它们以其独特的特性和设计理念吸引了众多开发者。Rust 由 Mozilla 开发,强调安全、并发和速度,而 Haskell 则是一种纯函数式语言,以其静态类型和...

    haskell学习资料

    Haskell是一种纯粹的函数式编程语言,它的设计目的之一是帮助解决软件开发中的诸多问题。在软件工程领域,随着程序规模和复杂性的增加,如何有效地开发和维护软件成为了一项挑战。函数式编程语言通过其理论基础——...

    Python-TensorFlow的Haskell语言绑定

    标题中的“Python-TensorFlow的Haskell语言绑定”意味着这个项目是关于在Haskell编程语言中使用TensorFlow库的一个接口或者绑定。TensorFlow是Google开源的一款强大的机器学习框架,广泛用于构建深度学习模型。而...

    新一代编程语言Python、MATLAB和Haskell.pdf

    新一代编程语言Python、MATLAB和Haskell的出现,对科学与工程计算领域产生了深远的影响。这三种语言不仅在概念上有所创新,而且在实际应用中也展现出独特的优势。 Python是一种通用解释型语言,具备动态数据类型,...

    learning-haskell:Haskell,一种高级的,纯函数式编程语言

    此外,Haskell还具有一种类型系统,该类型系统比平时更强大,更具表现力, 它的多态方法基于参数(类似于Java和C#中的泛型)和类型类为什么要使用纯函数式编程? 函数式编程是编程的样式或范例之一。 编程范例是由...

    haskell语言教程(learn you a haskell)

    学习Haskell不仅可以提升编程思维,还可以为理解和掌握其他函数式编程语言打下坚实的基础。尽管它可能对初学者来说有一定的学习曲线,但一旦掌握了Haskell,你将获得一种全新的编程视角,这对于解决复杂问题和提高...

    Haskell教程(中文版)

    《Haskell教程(中文版)》是一本专为初学者设计的Haskell编程语言入门教程。由Hal Daumé III原著,并由乔海燕精心翻译为中文,使得国内的编程爱好者也能无障碍地学习这一功能强大的函数式编程语言。Haskell是纯函数...

    Haskell趣味学习中文版

    **Haskell** 是一种纯函数式编程语言,它不依赖传统的命令式编程模型(如C、C++、Java和Python等),而是采用函数式编程范式。在Haskell中,计算过程是通过数学函数来表达的,变量一旦被赋值就不可更改,保证了程序...

    haskell趣学指南 高清

    总结来说,这份《haskell趣学指南 高清》是专为Haskell初学者设计的入门资料,它通过结合理论和实践,帮助学习者逐步掌握Haskell编程语言的基础知识和实际应用能力。此外,由于Haskell与众不同的编程范式,该指南...

    Yet Another Haskell Tutorial

    《Yet Another Haskell Tutorial》是一份详尽的指南,旨在为初学者提供全面的Haskell编程语言入门。Haskell是一种在编程领域中具有独特地位的语言,它被定义为一种懒惰的、纯函数式编程语言。这份教程由Hal Daume ...

    haskell-training:这是我关于Haskell编程语言的整个培训课程

    您将在此存储库中找到有关Haskell编程语言的所有我的培训。 以下是按时间顺序排列的主要类别: 11/11/2020 03/02/2021 03/03/2021 2021年3月9日 03/10/2021 2021年4月4日 我为什么决定学习Haskell 因此,我...

    Real World Haskell PDF

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

    Haskell Cookbook 英文无水印pdf

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

    Learning Haskell Data Analysis

    在《学习Haskell数据分析》这本书中,作者詹姆斯·丘奇(James Church)为读者提供了一种全新的方式来理解和处理数据集。本书不仅介绍了Haskell这门编程语言的基础知识,还深入探讨了如何利用Haskell高效地分析、操作...

    Parallel_and_Concurrent_Programming_in_Haskell

    Haskell,作为一门纯粹的、懒惰的函数式编程语言,为开发者提供了强大的抽象能力,特别适合于执行并行和并发任务。并行性(Parallelism)指的是同时使用多个计算资源解决问题,而并发性(Concurrency)则指的是同时...

    haskell学习最新资源:Beginning Haskell

    Haskell是一种纯函数式编程语言,它的历史悠久,社区活跃,拥有众多的库贡献者。它的学习和应用得益于其噪音少、纯净的函数式特性。作为学习资源,《Beginning Haskell》旨在引导初学者入门Haskell编程,涵盖了从...

Global site tag (gtag.js) - Google Analytics