gpt4 book ai didi

haskell - (unwords .words) 出现意外结果

转载 作者:行者123 更新时间:2023-12-02 21:03:51 25 4
gpt4 key购买 nike

任何人都可以解释 unwords . words 的行为吗?在下面的例子中。我希望它删除字符串 s 中的所有双空格,但显然事实并非如此。另一方面 unwords (words s) 的行为正如预期的那样。

Prelude> s
"this is a test "
Prelude> unwords (words s)
"this is a test"
Prelude> (unwords . words) s
"this is a test "
Prelude> (unwords . words) s == unwords (words s)
False
Prelude> (unwords . words) s == s
True

我在 OS X 10.11.6 上使用 GHCi 8.2.2。

最佳答案

我怀疑你可能写过类似的内容:

Prelude> (unwords . words) s = s   -- oops: used "=" instead of "=="

在您的 GHCi session 的早些时候。这将具有重新定义 (.) 运算符的效果,以便 f . g 是任何 fg 的恒等函数,之后您将获得观察到的行为:

Prelude> unwords (words "a  b  c  ")
"a b c"
Prelude> (unwords . words) "a b c "
"a b c "

甚至:

Prelude> (16 . map) "hello, world!"
"hello, world!"

关于haskell - (unwords .words) 出现意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47985194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com