显示标签为“Haskell”的博文。显示所有博文
显示标签为“Haskell”的博文。显示所有博文

2012年10月28日星期日

笔记:七周七语言

读完个人感觉Prolog、Erlang更好玩~

Ruby

Mixin:类Class  Include 模块Module

元编程,在宏里面,自动对我们想添加到目标类上的所有方法调用define_method

Io

传递消息,没有类的概念,语法简单

Prolog

声明式的编程语言,基于逻辑推断

其中的四色问题、八皇后问题求解例子非常精彩

Scala

没仔细看

Erlang

适合并发,轻量级进程,高可靠

函数式语言,列表解析很不错

Clojure

没仔细看

Haskell

纯洁的函数式语言,高阶函数很漂亮

强类型比较麻烦

2009年8月2日星期日

Haskell : 副作用与纯函数

:[Real world Haskell] 中文翻译:第二章 类型与函数

副作用引入了系统全局状态与函数行为之间的依赖性。我们暂时从Haskell离开一会,并考虑命令式程序语言。假设一个函数读取并返回全局变量的值。如果其他的代码可以修改这个全局变量,那么对于这个函数的应用将依赖于这个全局变量当前的值。这个函数即使自己没有修改这个变量也将具有副作用

副作用在函数中被无形的导入或导出。而在Haskell中,函数默认不具有副作用:一个函数的结果只依赖于明确提供给它的输入。我们称这样的函数为纯函数;具有副作用的函数是不纯的。

如果函数有副作用,可以在它的类型签名中看出来:函数的结果类型会以 IO 开头。

纯函数的运行结果只由输入参数决定。