Scala 中的 LazyList 和 Stream 有什么区别?

2024-03-19

我注意到Stream已弃用Scala 2.13他们建议使用LazyList。 他们还说“使用 LazyList(完全惰性)而不是 Stream(仅具有惰性尾部)”。
它到底是什么意思?他们为什么弃用Stream ?


NthPortal,贡献者LazyList,状态在更新和改进 LazyList 文档 #7842 https://github.com/scala/scala/pull/7842/files#r264513994

之间的主要区别LazyList and Stream- 及其主要特点 - 就是是否惰性是惰性评估的。我不知道 如何最好地传达这一点。

jwvh 州相关问题 https://stackoverflow.com/a/59587663/5205022

Stream除了第一个(头)元素之外,其他元素都是延迟实现的。 这被视为一个缺陷。

Scala 2.13 发行说明state https://github.com/scala/scala/releases/tag/v2.13.0

immutable.LazyList https://www.scala-lang.org/api/2.13.0/scala/collection/immutable/LazyList.html取代immutable.Stream. Stream有不同的惰性行为,现已弃用。 (#7558 https://github.com/scala/scala/pull/7558, #7000 https://github.com/scala/scala/pull/7000)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala 中的 LazyList 和 Stream 有什么区别? 的相关文章

  • 在 case 语句中间使用 unapply 的对象

    scala gt object Test def unapply L R v L R Some v defined object Test scala gt 1 2 match case 1 Test 2 gt println First
  • Scala:获取 Map.head 元素的键(和值)

    让我们想象一下以下不可变的 Map val foo Map 10 ten 100 one hundred 我想获得第一个元素的密钥 foo head获取第一个元素 但接下来呢 我还想要这个元素的值 即 十 设置键 值对 val key va
  • 选项包装值是一个好的模式吗?

    我最近写了以下 Scala 代码 val f File pretend this file came from somewhere val foo toFoo io Source fromFile f mkString 我真的不喜欢这种方式
  • 用于真实 Web 项目的 Scala-JS [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人用过吗Scala JS在真实的网络项目中 但不仅仅适用于普通的JavaScript在隔离环境中替换 我想尽可能多地使用 Scala 我希望可
  • c# 模拟 IFormFile CopyToAsync() 方法

    我正在对一个异步函数进行单元测试 该函数将 IFormFile 列表转换为我自己的任意数据库文件类列表 将文件数据转换为字节数组的方法是 internal async Task
  • Scala repl 抛出错误

    当我打字时scala在终端上启动 repl 它会抛出此错误 scala gt init error error while loading AnnotatedElement class file usr lib jvm java 8 ora
  • “函数是第一等值”这到底是什么意思?

    有人可以用一些很好的例子清楚地解释它吗 在解释函数式编程时 我在 Scala 中遇到了这句话 一流 并不是一个正式定义的概念 但它通常意味着一个实体具有三个属性 有可能used 不受限制 只要 普通 值可以 即从函数传递和返回 放入容器等
  • ';'预期但发现“导入” - Scala 和 Spark

    我正在尝试使用 Spark 和 Scala 来编译一个独立的应用程序 我不知道为什么会收到此错误 topicModel scala 2 expected but import found error import org apache sp
  • Scala 中抛出异常,什么是“官方规则”

    我正在 Coursera 上学习 Scala 课程 我也开始阅读 Odersky 的 Scala 书 我经常听到的是 在函数式语言中抛出异常不是一个好主意 因为它破坏了控制流 并且我们通常返回一个失败或成功的 Either Scala 2
  • 如何从字符串列中提取数字?

    我的要求是从列中的评论列中检索订单号comment并且总是开始于R 订单号应作为新列添加到表中 输入数据 code id mode location status comment AS SD 101 Airways hyderabad D
  • 过滤字符串上的 Spark DataFrame 包含

    我在用火花1 3 0 http spark apache org releases spark release 1 3 0 html and 火花阿夫罗1 0 0 https github com databricks spark avro
  • Scala(或 Java)中泛型函数的特化

    是否可以在 Scala 中专门化泛型函数 或类 例如 我想编写一个将数据写入 ByteBuffer 的通用函数 def writeData T buffer ByteBuffer data T buffer put data 但由于 put
  • 减少/折叠幺半群列表,但减少器返回任一

    我发现自己遇到过几次这样的情况 我有一个减速器 组合 fn 如下所示 def combiner a String b String Either String String a b asRight String 它是一个虚拟实现 但 fn
  • 在 Akka 中配置嵌套 Router

    我有一些嵌套的路由器 应创建它FromConfig 我想要的是这样的 test akka actor deployment worker router round robin nr of instances 5 slave router b
  • 多个 scala 库导致 intellij 出错?

    我正在使用 intellij 14 和 scala 2 11 6 使用 homebrew 安装并使用符号链接 ln s usr local Cellar scala 2 11 6 libexec src usr local Cellar s
  • 如何从命令行向 REPL 添加导入?

    如何使 REPL 导入命令行中给出的包 Sample scala someMagicHere import sys error scala gt imports 1 import scala Predef 162 terms 78 are
  • 具有两个通用参数的上下文边界

    在 Scala 中 我可以使用上下文边界 def sort T Ordered t Seq T 与以下意思相同 def sort T t Seq T implicit def Ordered T 如果我有一个带有两个泛型参数的类怎么办 IE
  • 模拟 BlazeClientBuilder[IO] 以返回模拟客户端[IO]

    我正在使用BlazeClientBuilder IO resource方法得到Client IO 现在 我想模拟客户端进行单元测试 但不知道该怎么做 有没有一个好的方法来嘲笑这个 我会怎么做 class ExternalCall val r
  • 对两种类型之间的二元关系进行建模

    有企业 也有人 用户可以对某个企业点赞或发表评论 但效果是一样的can not发生在一个人身上 当用户发布有关某个企业的内容或对其点赞时 该企业就被称为target喜欢或帖子 trait TargetingRelation Targetin
  • 如何使用 Spark 2 屏蔽列?

    我有一些表 我需要屏蔽其中的一些列 要屏蔽的列因表而异 我正在读取这些列application conf file 例如 对于员工表如下所示 id name age address 1 abcd 21 India 2 qazx 42 Ger

随机推荐

  • 如何在 Windows 上使用 subprocess.run 运行 bash 命令 [重复]

    这个问题在这里已经有答案了 我想使用运行 shell 脚本和 git bash 命令subprocess run 在 python 3 7 4 中 当我在上面运行这个简单的例子时子流程文档页面 https docs python org 3
  • 错误 TS2300:node_modules/@types/core-js/index.d.ts 中重复标识符“PropertyKey”

    我在 Visual Studio Code IDE 的 node modules types core js index d ts 中遇到以下错误 当我跑步时npm start为了服务该应用程序 我得到 node modules types
  • iPhone客户端证书

    我想验证我正在编写的应用程序是否正在 iPhone 上运行 会是什么 完美之处在于 Apple 将 SSL 客户端证书嵌入到每台 iPhone 中 该证书可以由接收服务器进行身份验证 我是这种情况吗 我还没有开始研究这个 我会更新我发现的任
  • 计算没有两个相邻字符相同的所有排列

    给定一个仅包含不同数量的数字 1 2 3 和 4 的序列 例如 13244 4442 等 我想计算其所有排列 以便没有两个相邻的数字是相同的 我相信它是 O N N 并且想知道是否有更好的 有人有主意吗 class Ideone stati
  • Python:删除子类中的类属性

    我有一个子类 我想要它not包括基类上存在的类属性 我尝试了这个 但它不起作用 gt gt gt class A object x 5 gt gt gt class B A del x Traceback most recent call
  • javascript 从http响应保存文件(Web Api HttpResponseMessage)

    所以当我尝试从服务器响应保存文件时遇到问题 当我尝试从浏览器中的 url 下载文件时 一切正常 但当我尝试从 clint 端发送请求时 文件已保存 但文件中存在 Object object 如果是 PDF 文件 则无法打开 请求必须包含一个
  • 如何使用 LLVM IRBuilder 从外部 DLL 调用函数?

    如何从 LLVM 调用外部 DLL 的函数 如何从 LLVM 代码调用 DLL 文件中定义的函数 由于您的问题缺少重要信息 我猜您想实现以下目标 我猜你会使用 c c 接口并且该函数有一个签名void fun void 我还猜测您将使用 L
  • 如何在离子中滚动到页面顶部

    目前我正在 javascript 和 angular js 上的 ionic 框架中工作 我只是放置搜索框并呈现客户列表 但假设在第一次尝试中我可以使用 a 进行搜索 它会显示具有 alpha a 的所有项目 但问题是当我向下滚动查看搜索结
  • 如何定义状态?

    有谁有一个好的定义state在网络应用程序的上下文中 更具体地说 什么是state在 React 的上下文中意味着 这与第一个定义有什么不同吗 我看到 状态 这个术语在 React 开发中被大量使用 但我一直无法找到一个可靠 简洁的定义 两
  • 我可以在 SQL Server Management Studio 中拥有多行选项卡吗

    我想知道是否可以将 SQL Server 设置为具有多行文件 查询选项卡 我有很多查询想要在它们之间切换 并且可以将它们移动到不同的水平组 但我认为两行比左侧下拉打开查询的大列表的引脚更容易导航 如果您固定足够的代码窗口来填满顶部栏 则 V
  • 使用自定义主干集合构建 Fuelux Datagrid 数据源

    我正在尝试构建启用排序 搜索和分页的数据网格 因此 我使用fuelux datagrid 我的主干视图如下所示 var app app function use strict The Players view app PlayersView
  • Linux / Bash 中随机打乱行

    我在linux下有一些文件 例如2 我需要将文件混入一个文件中 例如 cat file1 line 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8 and cat file2 linea
  • 使用线程循环更新 JFrame

    我对在循环中使用线程进行了一些广泛的搜索 虽然我了解单独线程如何工作的概念 但我似乎仍然无法掌握如何在我的简单应用程序中实现它 我的申请由一个带有文本框的表单组成 每次循环迭代时都需要更新此文本框 它以按下按钮开始 但循环也应以按下停止按钮
  • Javascript:无法获取新创建元素的高度

    使用新元素 例如 body append html 更新 DOM 后 我无法立即获取新更新元素的高度 例如 body height 部分修复是设置时间间隔并获取时间间隔结束时的高度 setTimeout alert body height
  • ncurses 终端大小

    如何找到 ncurses 应用程序的终端宽度和高度 void getmaxyx WINDOW win int y int x http linux die net man 3 getmaxyx我相信 另外 这可能会有所帮助 在C中获取终端宽
  • 使用多处理时合并 Pandas DataFrame

    我正在使用多重处理 并为每个进程生成一个 pandas DataFrame 我想将它们合并在一起并输出数据 以下策略似乎几乎有效 但是当尝试使用以下命令读取数据时df read csv 它只使用第一个name作为列标题 from multi
  • argparse 的非常基本的例子? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试编写最基本的代码来显示 arg 解析的工作原理 以便我能够理解它 我尝试阅读有关 argparse 的教程 但它非常令人困惑
  • 如何在 maven 的 java.library.path 变量中包含本机库

    我正在尝试为我的应用程序使用 JNotify 它有以下要求 只需使用以下命令运行 jar 文件即可测试 JNotify java Djava library path jar jnotify VER jar 目录 然后 JNotify 将监
  • Xpath local-name() 中的属性

    这是我的 xml 文件的一个小样本
  • Scala 中的 LazyList 和 Stream 有什么区别?

    我注意到Stream已弃用Scala 2 13他们建议使用LazyList 他们还说 使用 LazyList 完全惰性 而不是 Stream 仅具有惰性尾部 它到底是什么意思 他们为什么弃用Stream NthPortal 贡献者LazyL