In prolog, we can do something like the following:
myFunction a (a:xs) = ...
This is, when the 1st argument of myFunction
is the same as the first item of the list that's in the 2nd argument, this function will evaluate to ...
.
My question now is... how to accomplish a similar thing in Haskell? I have the idea that Prolog's Pattern Matching is more expressive than Haskell's. I've been trying to code that in Haskell and I'm having trouble -- either I am using invalid syntax or the above trick will simply not do.
Haskell doesn't do this kind of "variable matching". You'll have to explicitly put a guard on:
myFunction a (x:xs)
| x == a = ...