I’m trying to translate some python code to haskell. However I reached a point where I’m not sure how to proceed.
if len(prod) % 2 == 0:
ss = float(1.5 * count_vowels(cust))
else:
ss = float(count_consonants(cust)) # muliplicaton by 1 is implied.
if len(cust_factors.intersection(prod_factors)) > 0:
ss *= 1.5
return ss
I’ve tried to translate it to this:
if odd length prod
then ss = countConsonants cust
else ss = countVowels cust
if length (cust intersect prod) > 0
then ss = 1.5 * ss
else Nothing
return ss
But I keep getting errors of:
parse error on input `='
Any help or words of wisdom on this would be greatly appreciated.
Don’t think of programming in Haskell as “if this, then do that, then do the other thing” — the entire idea of doing things in a sequence is imperative. You’re not checking a condition and then defining a variable — you’re just calculating a result that depends on a condition. In functional programming,
ifis an expression and variables are assigned the result of an expression, not assigned inside it.The most direct translation would be: