streaming - 在 Elixir 中生成数字流的惯用方式是什么?

标签 streaming generator elixir

目前我有以下使用发电机:

(for i <- 999..100, j <- i..100, into: [], do:  i * j)
|> Stream.filter(&(palindromic?(&1)))
|> Enum.sort
|> List.last

有没有办法生成产品流?

最佳答案

让我们看看我们需要做什么:

  • 对于 999 和 100 之间的每个数字 i
  • 对于 i 和 100 之间的每个数字 j
  • 取 i * j 的乘积

  • 生成这种嵌套枚举的最简单方法是生成一个嵌套列表列表,然后将其展平,或者使用 flat_map立即运行:
    Stream.flat_map(999..100, fn i -> Stream.map(i..100, fn j -> j * i end) end)
    

    关于streaming - 在 Elixir 中生成数字流的惯用方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35541612/

    相关文章:

    elixir - 在 Phoenix 响应中设置 X-Frame-Options

    scala - Spark 管示例

    http - 为什么创建的段的目标持续时间不是我指定的

    javascript - 意外的标识符 'hs_post'

    javascript - 如何有条件地停止 JavaScript 生成器?

    elixir - Elixir 中是否有 python 的 timeit 的等效模块?

    python - 如何使用 Django 将图像流式传输到浏览器

    scala - 使用Flink获取DataStream的文件名

    python - 循环遍历目录以查找匹配的文件

    elixir - 如何将 test.watch 与 `iex -S mix phx.server` 集成