代码改变世界

随笔分类 -  fp_haskell

haskell Types 和 Typeclasses

2014-06-27 11:45 by youxin, 878 阅读, 收藏, 编辑
摘要: Algebraic Data Types 入门在前面的章节中,我们谈了一些 Haskell 内置的类型和 Typeclass。而在本章中,我们将学习构造类型和 Typeclass 的方法。我们已经见识过许多类型,如Bool、Int、Char、Maybe等等,不过在 Haskell 中该如何构造自己的... 阅读全文

Haskell 输入和输出

2014-06-03 11:34 by youxin, 3227 阅读, 收藏, 编辑
摘要: 我们已经说明了 Haskell 是一个纯粹函数式语言。虽说在命令式语言中我们习惯给电脑执行一连串指令,在函数式语言中我们是用定义东西的方式进行。在 Haskell 中,一个函数不能改变状态,像是改变一个变量的内容。(当一个函数会改变状态,我们说这函数是有副作用的。)在 Haskell 中函数唯一可以... 阅读全文

haskell模块(modules)

2014-06-02 16:42 by youxin, 2318 阅读, 收藏, 编辑
摘要: 装载模块Haskell 中的模块是含有一组相关的函数,类型和类型类的组合。而 Haskell 进程的本质便是从主模块中引用其它模块并调用其中的函数来执行操作。这样可以把代码分成多块,只要一个模块足够的独立,它里面的函数便可以被不同的进程反复重用。这就让不同的代码各司其职,提高了代码的健壮性。Hask... 阅读全文

Haskell高阶函数

2014-06-02 16:29 by youxin, 1550 阅读, 收藏, 编辑
摘要: Haskell functions can take functions as parameters and return functions as return values. A function that does either of those is called a higher orde... 阅读全文

Haskell函数的语法

2014-06-01 13:11 by youxin, 2356 阅读, 收藏, 编辑
摘要: 本章讲的就是 Haskell 那套独特的语法结构,先从模式匹配开始。模式匹配通过检查数据的特定结构来检查其是否匹配,并按模式从中取得数据。在定义函数时,你可以为不同的模式分别定义函数本身,这就让代码更加简洁易读。你可以匹配一切数据类型 --- 数字,字符,List,元组,等等。我们弄个简单函数,让它... 阅读全文

Haskell递归

2014-06-01 13:10 by youxin, 1611 阅读, 收藏, 编辑
摘要: maximum函数取一组可排序的 List(属于 Ord Typeclass) 做参数,并回传其中的最大值。想想,在命令式风格中这一函数该怎么实现。很可能你会设一个变量来存储当前的最大值,然后用循环遍历该 List,若存在比这个值更大的元素,则修改变量为这一元素的值。到最后,变量的值就是运算结果。唔... 阅读全文

Haskell缩进规则

2014-06-01 12:50 by youxin, 1499 阅读, 收藏, 编辑
摘要: Haskell也是使用缩进来表示一个表达式或者块延伸的范围的,这点与Python类似。Haskell的缩进规则简单总结起来只用下面三条: 1. 源文件中第一个顶级的定义或者声明的缩进,定义了该文件中所有顶级定义或者声明的缩进; 2. 空白行(只有注释的行也认为是空白行)和比前面某一行更加向右的缩进都... 阅读全文

haskell趣学指南笔记1

2014-03-10 19:54 by youxin, 1384 阅读, 收藏, 编辑
摘要: 网址:http://learnyouahaskell.com/中文版:http://learnyouahaskell-zh-tw.csie.org/zh-cn/ready-begin.html在 Haskell 中,List 就像现实世界中的购物单一样重要。它是最常用的数据结构,并且十分强大,灵活地使用它可以解决很多问题。本节我们将对 List,字串和 list comprehension 有个初步了解。 在 Haskell 中,List 是一种单类型的数据结构,可以用来存储多个类型相同的元素。我们可以在里面装一组数字或者一组字符,但不能把字符和数字装在一起。Note: 在 ghci 下,我们 阅读全文

haskell入门

2014-03-10 18:39 by youxin, 1195 阅读, 收藏, 编辑
摘要: 斯坦福公开课《编程范式》中介绍了Scheme(但是不仅仅是Scheme,它只是作为函数式语言的代表),最后一课介绍了Haskell。。。“Hello World!”是学习一门语言的魔咒 :)ghc windows上面的winghci这是一个解释器环境,和python的差不多在提示符后Prelude>后面输入"Hello World"解释器返回 "Hello World",哦耶...当然,你可以输入一些你能想到的功能试试,1 + 1、7/2 ...但是试试 5 mod 3 ... 额...别忘了,童鞋们,这个是函数式语言,其构成可以写成:函数名 参数 阅读全文

haskell 开发环境配置

2014-03-10 13:20 by youxin, 3926 阅读, 收藏, 编辑
摘要: haskell是一门通用函数式语言,几乎可以进行任何种类的开发,包括命令行,GUI,数据库,Web.源代码可以跨平台: Linux,Mac, Windows, FreeBSD 等.haskell特点:函数式变成风格为主,命令式风格为辅,具有严格且方便易用的类型系统。类型检查可以帮助程序员在开发过程中避免很多错误,并辅助组织程序的结构。haskell的开发工具主要有 GHC, hugs 两种, 还有中 nhc 没用过就不说了。我们这里要安装的是 GHC,以及在 ghc 基础上的 Haskell Platform。GHC:全称: Glasgow Haskell Compiler , 包含一个高效. 阅读全文
点击右上角即可分享
微信分享提示