在我的函数式编程课程中,讲师创建了一个函数reverse来获取一个列表并返回一个具有相同元素但顺序相反的列表:
reverse :: [a] -> [a]
reverse [] = []
reverse (x:xs) = reverse xs ++ [x]
Run Code Online (Sandbox Code Playgroud)
然而,在书中我从定义中了解到,他们创建了相同的函数,并在函数名称后添加了 ' :
reverse' :: [a] -> [a]
reverse' [] = []
reverse' (x:xs) = reverse' xs ++ [x]
Run Code Online (Sandbox Code Playgroud)
我想知道这两个函数的行为是否相同,或者 ' 是否改变了它们的行为?此外,是否存在一种表示法优于另一种表示法的情况?任何帮助,将不胜感激!