如何访问我使用cons(:)运算符添加的列表元素?

栏目: 编程语言 · 发布时间: 6年前

内容简介:翻译自:https://stackoverflow.com/questions/9486874/how-do-i-access-a-list-element-ive-added-with-the-cons-operator
我是 Haskell

的新手(以及一般的函数式编程),并且想知道如何使用cons(:)运算符访问我添加到列表中的新元素?

例如,使用WinGHCi我创建一个新列表并访问第一个元素:

ghci> let a = [1,2,3]
ghci> a!!0
1

提示返回1,第一个元素的值,酷.现在我在列表的前面添加一个新值并尝试访问它:

ghci> 5:a
[5,1,2,3]
ghci> a!!0
1

看起来列表项不会被重新编入索引.我尝试使用负面索引来工作和其他类似的东西,但编译器似乎没有批准.我正在阅读的教程只是跳过它,我找不到任何在线使用的东西.如何从列表中获取值“5”?

如果这是一个非常基本的问题,感谢您的帮助和抱歉.

这个想法是函数式编程的核心:您(通常)不会在适当的位置修改数据.因此,您不要将项添加到列表中:您创建新列表而不修改旧列表.

这允许许多好东西,例如共享,因为您永远不会更改旧数据,因此您可以继续引用它.但如果你习惯于其他编程范例,它也会带来负担:你必须改变你的方法来处理事物(通常你必须改变你的数据结构/算法,因为他们依赖于数据结构的就地修改) .

在您的示例中,只需为cons’ed列表指定一个新名称:

let a = [1, 2, 3]
let b = 5:a

翻译自:https://stackoverflow.com/questions/9486874/how-do-i-access-a-list-element-ive-added-with-the-cons-operator


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript RIA开发实战

JavaScript RIA开发实战

(英)Dennis Odell / 张立浩 / 清华大学出版社 / 2010 / 48.00元

本书介绍如何采用最合理的方式为RIA编写可靠的、易于维护的HTML、CSS和JavaScript代码,以及如何使用Ajax技术在后台实现浏览器与Web服务器的动态通信。本书将介绍您在构建Web应用程序时可能遇到的性能限制,以及如何以最佳的方式克服这些限制。此外,本书提供的提示可以使用户界面响应更加灵敏。 本书也将介绍如何通过添加使用自定义字体的印刷标题、多媒体回放组件、自定义窗体控件和动态绘......一起来看看 《JavaScript RIA开发实战》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换