我有一个数组,其中包含如下所示的元组:[((Int, Int), Int)]。我试图创建一个新的数组与列表理解说,只添加所有3 Ints,如果第3 Int ==一个特定的数字。我把它写成
newArray = [((x,y),z) | ((x,y),z)<-oldArray, (snd oldArray) == 5]但是,当我试图运行包含此内容的代码时,它会说“无法匹配预期的类型”,并将错误指向我的条件。"Couldn't match expected type '(a0, Int)' with actual type '[((Int, Int), Int)]'"。
发布于 2017-03-29 22:13:28
oldArray是一个列表,总是和永远的,即使在理解的范围内也是如此,所以snd不能应用于它。使用z == 5代替。
https://stackoverflow.com/questions/43104846
复制相似问题