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