文章分类 - Haskell
摘要:可能经常会有人问到python中的range和xrange有什么区别,你知道range是直接创建了一个列表,而xrange是创建了一个生成器,并且xrange非常适合当需要创建一个很大的列表的时候,因为这将带来很小的内存开销,而如果使用range则带来的系统开销不可想象。但其实这里还有一些可以扒的东
阅读全文
摘要:一旦我们接纳了函数式哲学,惰性(或延迟)求值这一技术会变得非常有趣。在讨论并行时已经见过下面的代码片断: 1 String s1 = somewhatLongOperation1(); 2 String s2 = somewhatLongOperation2(); 3 String s3 = con
阅读全文
摘要:函数式编程蔚然成风,越来越多的开源项目、技术交流在使用函数式编程的术语降低开发或沟通成本,这无形中对不了解函数式编程的开发者造成了一定的学 习门槛,翻译本文的初衷就是要普及函数式编程的基本知识,从新的角度扩展编程思维。至于为什么要使用 JavaScript 演示函数式编程,一方面是因为 JavaSc
阅读全文
摘要:面向对象的编程通过封装可变动的部分来构造能够让人读懂的代码,函数式编程则是通过最大程度地减少 可变动的部分来构造出可让人读懂的代码。— Michael Feathers,Working with Legacy Code 一文的作者,这篇文章是通过微博发表的 关于本系列 本系列的目标是重新塑造您对函数
阅读全文
摘要:偏函数应用指的是固化函数的一个或一些参数,从而产生一个新的函数。比如我们有一个记录日志的函数: 1: def log(level, message): 2: print level + ": " + message 3: 4: #usage 5: log("Warning", "this is on
阅读全文
摘要:偏函数( 偏函数是只对函数定义域的一个子集进行定义的函数。 scala中用scala.PartialFunction[-T, +S]类来表示 ) Scala提供了定义偏函数(PartialFunction)的语法快捷: 它们也可能由 orElse 组成: 偏函数出现在很多场景,并被有效的编码为 Pa
阅读全文
摘要:如果你想定义一个函数,而让它只接受和处理其参数定义域范围内的子集,对于这个参数范围外的参数则抛出异常,这样的函数就是偏函数(顾名思异就是这个函数只处理传入来的部分参数)。 偏函数是个特质其的类型为PartialFunction[A,B],其中接收一个类型为A的参数,返回一个类型为B的结果。 其有个重
阅读全文
摘要:原文链接:Which Programming Languages Are Functional? 在本文的第一部分中,我没有从学术角度,也没有从营销角度,而是以一种搬砖码农能看懂的方式,解释了什么是函数式编程语言。更重要的是,我希望我对副作用的定义,能帮助搬砖码农更轻松地在应用程序失控前找到它们。
阅读全文
摘要:诞生50多年之后,函数式编程(functional programming)开始获得越来越多的关注。 不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言也层出不穷,比如Erlang、Clojure、Scala,、F#等等。目前最当红的Python、Ruby、Javascript,对函数式编程
阅读全文
摘要:查看全文 程序=数据+算法,要学习一门语言,就必须先了解它的数据类型,Haskell的数据类型主要分四类:基本类型,Tuple,List,自定义类型。基本类型分两部分,一部分是Int Char Bool Float之类的基本类型,另一部分是这些类型的分类,这些类型的分类会在Haskell的函数部分涉
阅读全文
摘要:你可能听说过函数式编程(Functional programming),甚至已经使用了一段时间。 但是,你能说清楚,它到底是什么吗? 网上搜索一下,你会轻松找到好多答案。 与面向对象编程(Object-oriented programming)和过程式编程(Procedural programmin
阅读全文
摘要:用haskell的概念解释范畴论。翻译自 wikibook : http://en.wikibooks.org/wiki/Haskell/Category_theory 目录 范畴论简介 范畴公理 Hask ,Haskell范畴 函子 Hask 上的函子 将范畴论的概念对应到Haskell Mona
阅读全文
摘要:Haskell 的意义 学习 haskell, 基本上大家的第一个反应是学这东西有什么用? 也是, 学习一个东西之前知道这玩意有啥用, 才有动力去学. 想当年, 刚开始学线性代数的时侯, 矩阵变换来变换去, 我就一直耿耿于怀: 变来变去搞什么名堂, 有啥子用? 因此, 线性代数就没学好. 考试考完就
阅读全文
摘要:介绍 最近我阅读了这一有趣的文章 [弗里斯比教授最好的函数式编程教程],我想在这篇文章中说说我的理解。 f(x) 在 _命令式编程_中,你会向计算机发送一系列的任务让它执行完成。在执行的过程中,状态有可能发生变化。而在 完全的函数式编程 中你不会告诉计算机他要做什么,而是告诉它 是 什么。 > //
阅读全文
摘要:最近需要补的东西较多,疏于打理关于Monad的学习笔记,所以赶在到公历新年前,先整理出一部分,以备忘: 是什么? A monad is just a monoid in the category of endofunctors, what’s the problem? 单子 不过是一个自函子范畴上的
阅读全文
摘要:作者:雷纯锋 授权本站转载。 Functor、Applicative 和 Monad 是函数式编程语言中三个非常重要的概念,尤其是 Monad ,难倒了不知道多少英雄好汉。事实上,它们的概念是非常简单的,但是却很少有文章能够将它们描述清楚,往往还适得其反,越描越黑。与其它文章不同的是,本文将从结论出
阅读全文
摘要:最近很长的一段时间,学习都卡壳在Functor和Applicative上,弄不懂这俩到底是啥,根本没有办法继续去学习Monad。直到今天,我无意中看到了Aditya Bhargava写的《Functors, Applicatives, And Monads In Pictures》,上面有非常多的图
阅读全文
摘要:《Haskell 趣学指南》是一本非常简洁明了的入门书。 Introduction Haskell 是一门纯函数式编程语言。 函数式,相对于命令式,解决问题的方式是定义问题,而不是定义如何做。 纯函数,说的是没有副作用。也就是函数的执行不会依赖和改变状态(变量的值等)。只依赖输入。两次相同输入对应同
阅读全文