【问题标题】:Permutation of string, Haskell [duplicate]字符串的排列,Haskell [重复]
【发布时间】:2014-12-16 11:28:42
【问题描述】:

我有一个给定的字符串:abcdpqrs,输出将是:badcqpsr。

我当前的代码:

f :: [a] -> [a]
f (a:b:xs) = b:a:xs
f xs = xs

评估f "abcdpqrs" 会得到"bacdpqrs"。这怎么能用来获取“badcqpsr”?

【问题讨论】:

  • 你几天前问了同样的问题,但它被关闭了。请不要多次发布相同的问题......相反,您应该编辑您的原始问题并在那里添加您当前的尝试。无论如何,你错过了一个递归调用:它应该是f (a:b:xs) = b : a : f xs
  • @Jubobs 谢谢你,如果你改变你的评论来回答,我会选择它。

标签: haskell permutation


【解决方案1】:

通过递归处理列表的其余部分,尝试处理的不仅仅是前两个字符:

f :: [a] -> [a]
f (a:b:xs) = b:a:f xs
f xs = xs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多