Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 在haskell中切换列表中的每个元素_List_Haskell_Boolean_Non Exhaustive Patterns - Fatal编程技术网

List 在haskell中切换列表中的每个元素

List 在haskell中切换列表中的每个元素,list,haskell,boolean,non-exhaustive-patterns,List,Haskell,Boolean,Non Exhaustive Patterns,我必须编写一个函数来切换给定布尔值的列表,例如: 输入:切换[真、假、假] 输出:[假、真、真] 这就是我想到的 toggle :: [Bool] -> [Bool] toggle [a] = not a:[a] toggle [] = [] 我一直在犯这样的错误: ***例外:Uebung3.hs:38:1-20:功能切换中的非穷举模式 这是一个非常基本的问题,我来自Java,刚刚开始学习Haskell。作为一种模式,[a]是一个单元素列表:一个只包含一个元素a的列表 作为类型,[a]

我必须编写一个函数来切换给定布尔值的列表,例如:

输入:切换[真、假、假]

输出:[假、真、真]

这就是我想到的

toggle :: [Bool] -> [Bool]
toggle [a] = not a:[a]
toggle [] = []
我一直在犯这样的错误:

***例外:Uebung3.hs:38:1-20:功能切换中的非穷举模式

这是一个非常基本的问题,我来自Java,刚刚开始学习Haskell。

作为一种模式,[a]是一个单元素列表:一个只包含一个元素a的列表

作为类型,[a]是a类型值的列表。但不是作为一种模式

模式a:as代表一个非空列表,其中头元素a和其余元素as。将其用作等式中的模式:

-- toggle [a] = not a:[a]
toggle (a : as) = not a : _______ as
toggle [] = []
您需要通过填充空格来完成它,以使此定义递归

当定义引用self以对其输入的其余部分进行辅助调用时,定义是递归的

模式[]空列表和a:as非空列表是互斥的。更重要的是,它们一起是详尽无遗的:列表值没有其他可能

但是模式[]和[a]并不是详尽无遗的:它们不包括两个或更长元素的列表。[a]模式与a:[]相同,它是一个以空列表作为尾部的列表。

作为一个模式,[a]是一个单元素列表:一个只包含一个元素a的列表

作为类型,[a]是a类型值的列表。但不是作为一种模式

模式a:as代表一个非空列表,其中头元素a和其余元素as。将其用作等式中的模式:

-- toggle [a] = not a:[a]
toggle (a : as) = not a : _______ as
toggle [] = []
您需要通过填充空格来完成它,以使此定义递归

当定义引用self以对其输入的其余部分进行辅助调用时,定义是递归的

模式[]空列表和a:as非空列表是互斥的。更重要的是,它们一起是详尽无遗的:列表值没有其他可能


但是模式[]和[a]并不是详尽无遗的:它们不包括两个或更长元素的列表。[a]模式与a:[]模式相同,a:[]是一个以空列表为尾部的列表。

对于替代解决方案,请查看,对于替代解决方案,请查看