`
CharlesCui
  • 浏览: 436111 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Haskell惯用法

阅读更多
在这里总结一下我遇到的Haskell惯用法:

[a,b,c] !! 1


列表后跟两个感叹号和一个index,表示取出该列表中位于该index的元素。

GHCi中的一些宏命令:

:cd 更改当前目录

:load 或者 :l 加载module(hs文件)

:reload 或者 :r 重新加载最近一次加载的module文件

:type 或者 :t 显示后面表达式的类型

:help 列出常用的GHCi命令

Haskell中有Range这个类型,比如

let a = [1..10]

a这就是一个[1,2,3,4,5,6,7,8,9,10]的list,这个list等于[1..10]这个range

定义一个无限长度的list是这样写:

let a = [1..]

后面没有上线所以这个list就无限长

再介绍一个函数:

take 10 a

取出a这个list中的前10个元素

Haskell的一个语言特性是惰性求值

怎么体现Haskell的惰性呢?

我们刚才不是定义了一个无限长的List么?let a = [1..]

由于a没有定义上限,所以计算它的长度是永远也计算不完的,取a的元素也是取不尽的,

这样我们用take方法取a的前1000个元素,当你取的时候计算机就给你计算出这个range的前1000个元素,当你要取到1001个元素的时候,它再给你计算出第1001个元素,如果你不取,那些元素就是不存在的,这就是惰性。
2
0
分享到:
评论

相关推荐

    haskell-multihash:Multihash Haskell实现

    6. **API设计**:haskell-multihash的API设计遵循Haskell的惯用法,易于理解和使用,同时也支持类型级别的操作,如通过类型类进行泛型编程。 7. **兼容性**:由于Multihash是一个跨语言的标准,因此haskell-...

    hsirc:Haskell IRC库

    HSIRC库的API设计遵循了Haskell的惯用法,比如使用类型类和Monads来处理异步操作和状态。 在`hsirc-master`压缩包中,通常会包含以下文件和目录: - `src/`: 包含HSIRC库的主要源代码文件,如`Message.hs`(解析和...

    amazonka:适用于Haskell的全面的Amazon Web Services SDK

    Amazonka的API设计遵循了Haskell的惯用法,使得Haskell开发者能无缝地融入AWS生态系统。例如,它使用Haskell的类型系统来表示AWS的资源和操作,这有助于在编译时捕获错误,并提供类型安全的API调用。此外,Amazonka...

    htaglib:用于TagLib(音频元数据库)的Haskell绑定

    5. **高级接口**:htaglib的API设计遵循Haskell的惯用法,提供了一致且易于使用的接口。例如,元数据的读写操作可能通过`Tag`类型进行,而文件操作则可能通过`AudioFile`类型完成。 6. **错误处理**:Haskell的纯...

    easytensor:多维类型安全的数字运算

    它的API设计遵循Haskell的惯用法,使得熟悉Haskell的用户能够快速上手。此外,由于Haskell的惰性求值特性,easytensor还能有效地处理大型数据集,只有在需要计算时才进行实际的运算,从而节省内存资源。 总结来说,...

Global site tag (gtag.js) - Google Analytics