gpt4 book ai didi

erlang - Erlang中列表理解中的多个过滤器

转载 作者:行者123 更新时间:2023-12-01 07:27:52 25 4
gpt4 key购买 nike

假设我有一个包含天气的列表:

1> Weather = [{toronto, rain}, {montreal, storms}, {london, fog}, 
{paris, sun}, {boston, fog}, {vancouver, snow}].

为了得到有雾的地方,我可以这样做:
2> FoggyPlaces = [X || {X, fog} <- Weather].
[london,boston]

现在我想检索有雾和下雪的地方。我试过这个,但它只检索下雪的地方,
3> FoggyAndSnowyPlaces = [X || {X, fog} <- Weather, {X,snow} <- Weather].
[vancouver,vancouver]

我期待的地方 [london,boston,vancouver] .

如何包含多个过滤器?

最佳答案

FoggyAndSnowyPlaces = [X || {X, Y} <- Weather, (Y == fog) or (Y == snow)].

您混淆了生成器( Pattern <- List )和过滤器( bool 条件)。多个生成器的工作方式类似于其他语言中的嵌套循环,因此在您的 3> 中你得到 vancouver两次,因为第一个生成器产生两个值。

关于erlang - Erlang中列表理解中的多个过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14321265/

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