ユークリッドの互除法のような簡単なものだと、さすがにHaskellもPythonもそんなに差はなく、どちらもきれいに書ける。
Haskell
euc m 0 = m
euc m n | m < n = euc n m
| m `mod` n == 0 = n
| otherwise = euc n $ m `mod` n
main = do print $ euc 1071 1029
Python
def euc(m, n):
if m < n: return euc(n, m)
if n == 0: return m
if m % n == 0 : return n
return euc(n, m % n)
print euc(1071, 1029)