如何添加字符串的内容?

Art*_*hur 3 string haskell

我正在制作一个比较两个字符串的功能,看看是否是另一个字符串的重新排列.例如"hhe"和"heh"将产生真实但"hhe"和"hee"将是错误的.我想我可以通过总结字符串的元素并查看它们是否相同来做到这一点.我知道haskell,所以我不知道我是否可以在C代码中加入字符代码到目前为止:

comp :: String -> String-> Bool
comp x y = (sum x) == (sum y)
Run Code Online (Sandbox Code Playgroud)

这在编译时会产生错误.

jam*_*idh 8

您可以先排序,然后比较字符串

import Data.List
import Data.Function

comp = (==) `on` sort
Run Code Online (Sandbox Code Playgroud)

然后可以像这样使用

"abcd" `comp` "dcba" --yields True
Run Code Online (Sandbox Code Playgroud)

  • @Arthur另外,你隐式导入定义`sum`和`(==)`的`Prelude`.我猜你也要写那些. (4认同)
  • @Arthur我可以问为什么? (2认同)
  • @Arthur- @Jefffrey打败了我....有原因吗?如果我必须在没有模块的情况下自己完成这项工作,我只需要手工重写`sort`和`on`,我就可以为你做到这一点,但似乎很多工作都没什么好处. (2认同)