gpt4 book ai didi

haskell - 我什么时候应该使用$(并且它总是可以用括号替换)?

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

根据我所读到的内容,$ 被描述为“将函数应用于其参数”。然而,它似乎不像 Lisp 中的 (apply ...) 那样工作,因为它是一个二元运算符,所以它看起来唯一的作用就是有时有助于避免括号,就像 foo $ bar quux 而不是 foo (bar quux)。我理解正确吗?后一种形式是否被认为是“糟糕的风格”?

最佳答案

$当左括号和右括号之间的距离大于良好的可读性保证时,或者如果您有多层嵌套括号,则优先于括号。

例如

i (h (g (f x)))

可以重写

i $ h $ g $ f x

换句话来说,它代表右联想函数的应用。这很有用,因为普通函数应用程序与左侧关联,即以下

i h g f x

...可以重写如下

(((i h) g) f) x

($) 的其他便捷用途功能包括用它压缩列表:

zipWith ($) fs xs

这将应用函数列表中的每个函数 fs到列表中的相应参数 xs ,并将结果收集到列表中。与sequence fs x对比它应用函数列表 fs单个参数 x并收集结果;和fs <*> xs它应用列表 fs 中的每个函数列表中的每个元素xs .

关于haskell - 我什么时候应该使用$(并且它总是可以用括号替换)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/395995/

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