Haskell按特定顺序将函数输入连接到列表中

Haskell按特定顺序将函数输入连接到列表中,haskell,Haskell,大家好 我一直在努力让这个函数以他们想要的特定方式工作 我尝试了所有的方法,唯一的结果就是没有起点和终点,例如:[((a,b),(b,c))] 有人能帮我一下吗?我被绊倒了 更新:键入Point=(Float,Float)很好,因为它在没有起点/终点的情况下工作。一种简单的完成方法是使用函数,但在内部函数的列表中添加起点/终点。所以你的界面还是一样的 使用递归、模式匹配和保护的另一种方法是: -- assuming the inputs to be int as definition of po

大家好

我一直在努力让这个函数以他们想要的特定方式工作

我尝试了所有的方法,唯一的结果就是没有起点和终点,例如:[((a,b),(b,c))]

有人能帮我一下吗?我被绊倒了


更新:键入Point=(Float,Float)

很好,因为它在没有起点/终点的情况下工作。一种简单的完成方法是使用函数,但在内部函数的列表中添加起点/终点。所以你的界面还是一样的

使用递归、模式匹配和保护的另一种方法是:

-- assuming the inputs to be int as definition of point not given
solve x z [] = [(x,z)]

solve x z (y:ys)
            | x == 0 = solve y z ys     -- x ==0 to be replaced by null/empty condition on x
            | null ys && z == 0 = []    -- z ==0 to be replaced by null/empty condition on z
            | null ys = [(y, z)]
            | otherwise = (x,y) : solve y z ys

根据darthfennec注释,添加了当列表为空或起点/终点无效时的基本情况。

您能展示一下您的尝试吗?这将使我们更好地了解您的问题所在。请缩小您的问题范围。你自己能走多远?你到底在哪里需要帮助?我们不是开始随便解决每个人的家庭作业…@Jere我得到了我需要的提示!唯一缺少的是将第一个和第二个输入分别连接到开头和结尾。谢谢你的关注!那个基本情况看起来不太正确。我认为你不应该忽略
x
。我忘了包括,重点是:键入Point=(Float,Float)我现在正在尝试你的解决方案,谢谢你的快速回复!!