gpt4 book ai didi

haskell - 学习Haskell : where-clause variable x, 哪里来的?

转载 作者:行者123 更新时间:2023-12-03 14:19:51 26 4
gpt4 key购买 nike

我正在学习 Haskell,这将是我的第一篇文章。

在伟大的在线书籍http://learnyouahaskell.com/syntax-in-functions#where有一个例子largestDivisble .在 where 子句中,变量 x被引入,但它来自哪里?到目前为止,变量在函数体的模式匹配部分有界。

正如我现在解释的那样:
零件where p x声明函数 p以及一些变量的应用x .体内filter p [some-list] , some-list 代表 x .

我认为这一切都有些模糊。有人可以帮我解释这段代码吗?

    largestDivisible :: (Integral a) => a  
largestDivisible = head (filter p [100000,99999..])
where p x = x `mod` 3829 == 0

最佳答案

x只有函数参数。它完全属于 p 的定义。 .

您可以将其定义为一个单独的顶级函数,如下所示:

p :: (Integral a) => a -> Bool
p x = x `mod` 3829 == 0

并注意这里的类型签名不是必需的,将它包含在顶级函数中是一种很好的做法。 p的定义在 where子句相同,包括 x作为函数参数的本地名称。两者之间的唯一区别是定义在 where 中的函数。子句对于包含该子句的定义是本地的,不能在外部访问。

关于haskell - 学习Haskell : where-clause variable x, 哪里来的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57543931/

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