【发布时间】:2018-02-19 01:10:38
【问题描述】:
我目前正在为一门侧重于 Haskell 编码的课程做作业,但在我的一个练习中遇到了问题。这是具体的练习:
一天中的时间可以用元组(小时,分钟,m)表示,其中 m 表示“AM”或“PM”。开发一个 Boolean Haskell 函数 comeBefore,它接受两个时间元组并确定第一个是否比第二个更早。
这是我的解决方案代码:
comesBefore :: (Int,Int,String) -> (Int,Int,String) -> Bool
comesBefore (x1,y1,z1)(x2,y2,z2) | (x1<x2) = True
| (x1>x2) = False
| (x1==x2) && (y1<y2) = True
| (x1==x2) && (y1>y2) = False
| (x1==x2) && (y1==y2) && (z1=="AM") && (z2=="PM") = True
| (x1==x2) && (y1==y2) && (z1=="PM") && (z2=="AM") = False
main= print(comesBefore (4,20,"AM")(4,15,"AM"))
我收到的错误是第一个“|”的“错误:输入“|”时解析错误”。我看到这是 Haskell 程序的常见错误,我尝试了不同的间距解决方案,但没有任何效果。任何帮助,将不胜感激!谢谢! :)
【问题讨论】:
标签: haskell