gpt4 book ai didi

haskell - eta减少可能吗?

转载 作者:行者123 更新时间:2023-12-04 13:05:14 25 4
gpt4 key购买 nike

是否可以在以下情况下应用 eta 减少?

let normalise = filter (\x -> Data.Char.isLetter x || Data.Char.isSpace x )

我期待这样的事情是可能的:
let normalise = filter (Data.Char.isLetter || Data.Char.isSpace)

...但事实并非如此

最佳答案

您的解决方案不起作用,因为 (||)作品 Bool值和 Data.Char.isLetterData.Char.isSpace属于 Char -> Bool 类型.

pl给你:

$ pl "f x = a x || b x"
f = liftM2 (||) a b

解释: liftM2电梯 (||)(->) r monad,所以它的新类型是 (r -> Bool) -> (r -> Bool) -> (r -> Bool) .

所以在你的情况下,我们会得到:
import Control.Monad
let normalise = filter (liftM2 (||) Data.Char.isLetter Data.Char.isSpace)

关于haskell - eta减少可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518717/

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