gpt4 book ai didi

haskell - 点自由一元表达式

转载 作者:行者123 更新时间:2023-12-01 22:25:16 24 4
gpt4 key购买 nike

考虑这个表达式(取自 Real World Haskell ch. 8,我尝试简化)

isElfFile :: FilePath -> IO Bool
isElfFile path = return . hasElfMagic =<< L.readFile path

如何制作此功能的无积分版本?我尝试使用其另一个绑定(bind)操作 >>=,提升 hasElfMagic,但似乎没有一个起作用。

最佳答案

这里不绑定(bind)更简单:

isElfFile path = return . hasElfMagic =<< L.readFile path
isElfFile path = fmap hasElfMagic (L.readFile path)
isElfFile = fmap hasElfMagic . L.readFile

但当然也可以使用=<< :

isElfFile path = return . hasElfMagic =<< L.readFile path
isElfFile path = (=<<) (return . hasElfMagic) (L.readFile path)
isElfFile = (=<<) (return . hasElfMagic) . L.readFile
isElfFile = (return . hasElfMagic =<<) . L.readFile

一般来说,在尝试使事情变得无点之前,将中缀函数转换为前缀形式会有所帮助。

关于haskell - 点自由一元表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24847859/

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