无废话学习Haskell -- 语言基础
来源:互联网 发布:oecd怎么查数据 编辑:程序博客网 时间:2024/06/06 06:33
让我们从如下的代码开始介绍语言基础(相信和我一样,你看到Haskell的语法时候,肯定以为自己到了火星了)
List makeList()
{
List current = new List();
current.value = 1;
current.next = makeList();
return current;
}
如果在类似于C/C++语言的代码中,建立一个列表可能会有这样的函数。不过显然这样的函数在运行中会出现死循环——或者会生成一个无限长的列表。
然而,在Haskell中,可以这样来写代码:
makeList=1:makeList
“:”是haskell中的一个操作符,用来生成列表的。
那么如果你单独运行这段代码,同样的道理,会生成一个没有边界的数组(程序也因此不会停止了)。但是如果你只需要使用makeList中的有限长度的内容(比如长度为10),那么这段代码就可以很好的工作,因为基于“lazy”的原则,haskell只会执行10次。这就是懒加载
另外,haskell是大小写相关的。而且这里有一个关键点,对于值或者函数,标识符要以小写字母打头,对于类型,要以大写字母打头。
List makeList()
{
List current = new List();
current.value = 1;
current.next = makeList();
return current;
}
如果在类似于C/C++语言的代码中,建立一个列表可能会有这样的函数。不过显然这样的函数在运行中会出现死循环——或者会生成一个无限长的列表。
然而,在Haskell中,可以这样来写代码:
makeList=1:makeList
“:”是haskell中的一个操作符,用来生成列表的。
那么如果你单独运行这段代码,同样的道理,会生成一个没有边界的数组(程序也因此不会停止了)。但是如果你只需要使用makeList中的有限长度的内容(比如长度为10),那么这段代码就可以很好的工作,因为基于“lazy”的原则,haskell只会执行10次。这就是懒加载
另外,haskell是大小写相关的。而且这里有一个关键点,对于值或者函数,标识符要以小写字母打头,对于类型,要以大写字母打头。
- 无废话学习Haskell -- 语言基础
- 无废话学习Haskell
- 为什么要学习Haskell语言
- 无废话SAX:十分钟了解sax基础
- Haskell语言为什么值得你去学习
- 七周七语言之Haskell代码学习
- Haskell语言学习笔记(1)
- Haskell语言学习笔记(2)
- Haskell语言学习笔记(4)Functor
- Haskell语言学习笔记(5)Applicative
- Haskell语言学习笔记(6)Monad
- Haskell语言学习笔记(8)Monoid
- Haskell语言学习笔记(14)Foldable
- Haskell语言学习笔记(16)Alternative
- Haskell语言学习笔记(17)MonadPlus
- Haskell语言学习笔记(18)Traversable
- Haskell语言学习笔记(21)Array
- Haskell语言学习笔记(22)MaybeT
- 拥抱开源
- 如何以编程方式获取计算机上网用的公网IP地址
- what is Impersonation
- X Window研究笔记(12)
- What is delegation
- 无废话学习Haskell -- 语言基础
- MSB LSB
- WPA2与思科LEAP安全协议有何不同?
- Introduction to Algorithms:exercise2.1_4
- Google Analytics on the AIR:艺术化的软件
- 获得页面元素的实际位置
- wwwwwww
- 《领域驱动设计精简版》电子版迷你书序言
- mmmmmm