在Haskell中生成回文

在Haskell中生成回文,haskell,palindrome,Haskell,Palindrome,我正在尝试编写一个函数,它接受一个字符串并从中生成一个回文 例如,ace变得非常容易,只需将反向字符串连接到自身即可 palindrome s = s ++ reverse s ++是列表连接函数 让我指给你看。如果您刚刚开始学习,这是一本学习该语言的好书。非常简单,只需将反向字符串连接到自身即可 palindrome s = s ++ reverse s palindrome [] = [] palindrome (x:xs) = append (x:(palindrome xs)) x

我正在尝试编写一个函数,它接受一个字符串并从中生成一个回文


例如,
ace
变得非常容易,只需将反向字符串连接到自身即可

palindrome s = s ++ reverse s
++是列表连接函数


让我指给你看。如果您刚刚开始学习,这是一本学习该语言的好书。

非常简单,只需将反向字符串连接到自身即可

palindrome s = s ++ reverse s
palindrome [] = []
palindrome (x:xs) = append (x:(palindrome xs)) x
  where append (x:xs) y = x:(append xs y)
        append [] y = [y]
++是列表连接函数


让我指给你看。如果你刚刚开始学习这门语言,这是一本很好的书。

有趣的是,“无意义”这个词是如何流行起来的。我最初认为这是一个关于我认为是原始术语“无点”的笑话。@TomMD:我更喜欢“无点”这个术语,因为它总是提醒我过度使用无点样式会导致真正的无点代码,如
flip((.)。take)。放下
。有趣的是,“无意义”这个词是如何流行起来的。我最初认为这是一个关于我认为是原始术语“无点”的笑话。@TomMD:我更喜欢“无点”这个术语,因为它总是提醒我过度使用无点样式会导致真正的无点代码,如
flip((.)。take)。删除
。虽然此代码片段可能会解决问题,但它不会解释为什么或如何回答问题。请,因为这确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。您可以使用该按钮改进此答案,以获得更多选票和声誉!虽然这个代码片段可以解决这个问题,但它没有解释为什么或者如何回答这个问题。请,因为这确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。您可以使用该按钮改进此答案,以获得更多选票和声誉!
palindrome [] = []
palindrome (x:xs) = append (x:(palindrome xs)) x
  where append (x:xs) y = x:(append xs y)
        append [] y = [y]