【问题标题】:Is there something similar to list comprehensions in Elm?Elm 中是否有类似于列表推导的东西?
【发布时间】:2021-06-24 17:59:57
【问题描述】:

如果我理解正确的话,Elm 没有列表理解之类的东西。

例如,如果您想将数字 1 到 100 映射到其他数字,您会改用什么?

【问题讨论】:

  • map 有什么问题?
  • 地图没有问题,但我宁愿不必列出所有 100 个号码。还是我遗漏了一些明显的东西?
  • 听起来像你想要的 range (我既不是 Elm 的普通用户也不是专家,所以我不知道这一点,但现在很容易找到搜索文档。)我不确定这与列表推导有什么关系 - 似乎您的评论与问题不匹配。
  • 谢谢,range 是我所需要的(在 F# 中,生成数字 1 到 100 的列表的列表理解类似于 let list = [1 .. 100]
  • 谢谢,我明白了。在 Haskell(实际上是 Python)中,列表推导是一种将列表中的元素绘制到另一个列表中的方法,具有可选的映射和过滤。 Haskell 也有[1..100] 表示法,但这往往被称为“范围”语法(我不确定它有一个“官方”名称)。

标签: elm


【解决方案1】:

我认为List.range 和流水线风格读起来很好。 但它不像python中的列表推导那样简洁。

module Main exposing (main)

import Html


main =
    List.range 1 10
        |> List.map square
        |> List.map String.fromInt
        |> String.join ", "
        |> Html.text


square : Int -> Int
square a =
    a ^ 2

【讨论】:

  • 还有List.filter 代表if
猜你喜欢
  • 2011-12-04
  • 2011-01-07
  • 1970-01-01
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多