Haskell Tuple相关总结

一、相关操作

  zip:将两个List合并成一个元组序对的List。

  fst:返回元组序对第一个元素。

  snd:返回元组序对第二个元素。

  PS:元组序对是元组中只有两个元素的元组。

二、与List的比较

  • Tuple用圆括号表示,而List用方括号表示。
  • Tuple中的元素不必是相同类型,而List中的元素必须是相同类型。
  • Tuple不可追加元素,而List可以在原有的基础上追加元素。
  • Tuple只有在长度,内部元素类型依次相对应,才属于同种类型的元组。所有List均属于相同类型。
  • Tuple不能只包含一个元素,没有实际意义。(1)表示的就是数字1。可以用[(1),2,3]的合法性,证明其与数字1相同。或者,用":t"命令直接检测其数据类型。

  [[1,2],[1,1],[1,2,3]]的写法是正确的。

  [(1,2),(1,1),(1,2,3)]的写法是错误的。因为List中的元素必须是相同类型的,三元组与二元组不是相同类型,则非法。

时间: 2024-10-13 13:09:54

Haskell Tuple相关总结的相关文章

Haskell List相关操作

一.List中只能存放相同类型的元素. ++:将两个List合并成一个List.例,[1,2,3]++[4,5,6],结果是[1,2,3,4,5,6].  : :将“:”前面的元素添加到“:”后面的List中.新添加的元素在List的头部位置.例,1:[2,3,4,5,6],结果是[1,2,3,4,5,6]. !! :取List下标位置的元素.例,[1,2,3,4,5,6]!!0,结果是1. elem:判断某个元素是否存在于List当中.例,elem 1 [1,2,3,4,5,6],结果是tru

C++ - tuple

原文地址:http://blog.csdn.net/xiahn1a/article/details/41670203 在C++中的tuple和python语言中是类似的,是一个强大的允许存放多个不同类型数据的容器,是对pair的泛化. 要在C++中使用tuple,首先需要引用头文件tuple及名空间std. 和tuple相关的一共有4个函数,分别介绍 1. make_tuple: 用于创建tuple auto tup1 = std::make_tuple("Hello World!",

C++11模版元编程

1.概述 模版元编程(template metaprogram)是C++中最复杂也是威力最强大的编程范式,它是一种可以创建和操纵程序的程序.模版元编程完全不同于普通的运行期程序,它很独特,因为模版元程序的执行完全是在编译期,并且模版元程序操纵的数据不能是运行时变量,只能是编译期常量,不可修改,另外它用到的语法元素也是相当有限,不能使用运行期的一些语法,比如if-else,for等语句都不能用.因此,模版元编程需要很多技巧,常常需要类型重定义.枚举常量.继承.模板偏特化等方法来配合,因此编写模版元

erlang list的使用与优化建议

erlang有两种复合结构,tuple和list,两者的区别是tuple子元素的个数是固定不变的,声明后就不能改变了:而list是可变的,可以通过[H|T]来取出或插入新元素.本篇讲erlang list方面的知识,主要说一些基本操作和常用的list函数,再讲一些可以优化的点. list基本操作 [plain] view plain copy 1> A = [1, 2, 3, "abc"]. [1,2,3,"abc"] 2> length(A). 4 3

Flink资料(8) -- Flink代码贡献的指导及准则

本文翻译自Contributing Code ----------------------------------------- Apache Flink是由自愿的代码贡献者维护.优化及扩展的.Apache Flink社区鼓励任何人贡献源代码.为了使得代码贡献者及复查者之便利,以及保存高质量的代码基础,我们遵循着一个贡献代码的过程,该过程将在本文档中详细描述. 本文包括有关向Flink贡献代码所需知晓的所有事宜,描述了从前期准备,测试以及代码提交的过程,同时解释了代码编写的准则以及Flink基础

Haskell学习笔记一:类型和类型类相关内容

内容提要: 静态类型系统: 编译时确定类型错误: 类型推导机制: 基础类型:Int,Integer,Float,Double,Bool,Char: 类型变量: 基础类型类:Eq,Ord,Show,Read,Enum,Bounded,Num,Integral,Floating: Haskell是一门函数式编程语言,被称为最为纯粹的函数式编程语言.Haskell的类型系统非常强大,其中包含了很多有趣.抽象.某种程度上充满学术气息的特质. Haskell属于静态类型语言,这意味着: 每个值或者表达式,

python tuple、list相关

#python list''' 创建list有很多方法: 1.使用一对方括号创建一个空的list:[] 2.使用一对方括号,用','隔开里面的元素:[a, b, c], [a] 3.Using a list comprehension:[x for x in iterable] 4.Using the type constructor:list() or list(iterable) ''' def create_empty_list(): '''Using a pair of square b

C++模板元编程 - 2 模仿haskell的列表以及相关操作

这是昨天和今天写的东西,利用C++的可变模板参数包以及包展开,模式匹配的一些东西做的,感觉用typename...比轮子叔那个List<A,List<B, List<C, D>>>的设计要好看不少. List有一个很巧妙的继承,只有那么做才能使用类似于List<>::Rest的写法,直接定义成template<typename T, typename... TArgs>List是不行的. Change这里可以给一个args...换另一个包装,这里

Scala编程实例:使用List和Tuple

本文节选自Martin Odersky,Lex Spoon和Bill Venners所著,Regular翻译的<Programming in Scala>的第三章.Scala是一种针对 JVM 将函数和面向对象技术组合在一起的编程语言. 本节接着上一节的内容,继续介绍Scala编程中一些更先进的特征:List(数组)和Tuple(元组). Scala中使用List 方法不应该有副作用是函数风格编程的一个很重要的理念.方法唯一的效果应该是计算并返回值.用这种方式工作的好处就是方法之间很少纠缠在一