[Haskell-beginners] Conditionals where more than one case is true
patrick.browne at dit.ie
Mon Apr 17 10:26:07 UTC 2017
I am having difficulty in evaluating conditionals where more than one case
I require a program to express the following conditions:
1) x is faster than y if x is a buffolo and y is a pig.
2) x is faster than y if x is a pig and y is a slug.
Both of these conditions are true (expressed in fact predicate).
I include my attempt using guards (I have also tried case/if-then-else)
I can apreciate that the program works when the first guard condition is
met (faster Bob Joe).
I am not sure why it fails on the second case (faster Bob Joe)
Can I program the requirement using conditionals?
Can I pattern match is some way?
Is there another way to encode the requirement.
data E = Bob | Joe | Steve | Buffalo | Pig | Slug deriving Show
fact Buffalo Bob = True
fact Pig Joe = True
fact Slug Steve = True
faster x y | fact Buffalo x && fact Pig y = True
| fact Pig x && fact Slug y = True
| otherwise = False
-- faster Bob Joe OK
-- faster Steve Bob ***Exception: Faster.hs:(5,1)-(7,23): Non-exhaustive
patterns in function fact
This email originated from DIT. If you received this email in error, please
delete it from your system. Please note that if you are not the named
addressee, disclosing, copying, distributing or taking any action based on
the contents of this email or attachments is prohibited. www.dit.ie
Is ó ITBÁC a tháinig an ríomhphost seo. Má fuair tú an ríomhphost seo trí
earráid, scrios de do chóras é le do thoil. Tabhair ar aird, mura tú an
seolaí ainmnithe, go bhfuil dianchosc ar aon nochtadh, aon chóipeáil, aon
dáileadh nó ar aon ghníomh a dhéanfar bunaithe ar an ábhar atá sa
ríomhphost nó sna hiatáin seo. www.dit.ie
Tá ITBÁC ag aistriú go Gráinseach Ghormáin – DIT is on the move to
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners