lazy-evaluation相关内容

惰性 val 有什么作用?

我注意到 Scala 提供了 lazy vals.但我不明白他们在做什么. scala>值 x = 15x: 整数 = 15标度>懒惰的 val y = 13y: Int = 标度>Xres0:整数 = 15标度>是res1:整数 = 13 REPL 表明 y 是一个lazy val,但是它和普通的 val 有什么不同? 解决方案 它们的区别在于,val 在定义时执行,而 ..
发布时间:2021-12-07 12:52:16 其他开发

Scala 的惰性 val 的(隐藏)成本是多少?

Scala 的一个方便的特性是 lazy val,其中对 val 的评估被延迟到有必要时(第一次访问). 当然,lazy val 必须有一些开销——Scala 必须在某处跟踪该值是否已经被评估并且评估必须同步,因为多个线程可能会尝试访问该值第一次同时. lazy val 的成本究竟是多少 - 是否有一个与 lazy val 相关联的隐藏布尔标志来跟踪它是否已被评估,是什么完全同步,是否 ..
发布时间:2021-12-07 12:45:11 其他开发

在 node.js 中一次读取一行文件?

我正在尝试一次一行读取一个大文件.我发现 Quora 上的一个问题 处理了这个主题,但我缺少一些联系来使整个事情整合在一起. var Lazy=require("lazy");新的懒惰(process.stdin).lines.forEach(功能(行){console.log(line.toString());});process.stdin.resume(); 我想弄清楚的是如何一次从文 ..
发布时间:2021-12-01 21:29:30 前端开发

将参数传递给 dplyr 函数

我想使用 dplyr 参数化以下计算,以找出 Sepal.Length 的哪些值与多个 Sepal.Width: 库(dplyr)虹膜%>%group_by(Sepal.Length) %>%总结(n.uniq=n_distinct(Sepal.Width))%>%过滤器(n.uniq > 1) 通常我会这样写: not.uniq.per.group %总结(n.uniq=n_distinc ..
发布时间:2021-12-01 21:14:29 其他开发

词法闭包是如何工作的?

当我在研究 Javascript 代码中的词法闭包问题时,我在 Python 中遇到了这个问题: flist = []对于 xrange(3) 中的 i:def func(x): 返回 x * iflist.append(func)对于 flist 中的 f:打印 f(2) 请注意,此示例谨慎地避免了 lambda.它打印“4 4 4",这令人惊讶.我期待“0 2 4". 这个等效的 P ..
发布时间:2021-12-01 00:06:49 Python

R 中的惰性求值 – 赋值会受到影响吗?

我阅读了关于重命名对象和@Shane 的这个基本问题's answer to it,指向我懒惰的评估.现在我想知道 assign 是否也被懒惰地评估了.就像这里: assign("someNewName",someOldObject)rm(一些旧对象) 我对此感到疑惑的原因是以下用例:假设我有 10K+ R 个对象,每个对象都有两个属性,称为 originalName 和 additional ..
发布时间:2021-11-30 12:17:04 其他开发

在 Python 中协调 np.fromiter 和多维数组

我喜欢使用 numpy 中的 np.fromiter 因为它是构建 np.array 对象的一种资源懒惰的方式.但是,它似乎不支持多维数组,这也很有用. 将 numpy 导入为 np定义乐趣(i):""" 返回 4 个相同类型值的函数."""返回元组(4*i + j for j in range(4))# 尝试从中创建一个二维数组:a = np.fromiter((fun(i) for i in ..
发布时间:2021-11-18 04:08:51 Python

我是否应该避免暴露 Lazy<T>公共 API 中的类?

在库的公共接口设计中,返回一个Lazy 在属性中,如果我想要延迟初始化?还是总是通过封装或其他技术隐藏Lazy的使用是否更好? 解决方案 对于以下内容,我假设您指的是惰性属性. 这取决于界面的用途. 消费者知道它是懒惰的重要细节吗?或者它只是一个技术细节,不应该改变消费者的行为. 如果你只有一个短暂的延迟,不能由消费者处理,那么我会倾向于隐藏懒惰,只直接暴露 T. ..
发布时间:2021-11-17 03:02:42 其他开发

在 Apache Spark 中,如何使 RDD/DataFrame 操作变得懒惰?

假设我想编写一个函数 foo 来转换 DataFrame: object Foo {def foo(来源:DataFrame):DataFrame = {...具有停止条件的复杂迭代算法...}} 由于foo的实现有很多“Action"(collect、reduce等),调用foo会立即触发代价高昂的执行. 这不是一个大问题,但是由于 foo 只将一个 DataFrame 转换为另一个, ..
发布时间:2021-11-14 23:01:23 其他开发

SparkSQL 中的惰性求值

在来自 Spark 编程指南的这段代码中, #加载一个parquet文件的结果也是一个DataFrame.parquetFile = sqlContext.read.parquet("people.parquet")# Parquet 文件也可以注册为表,然后在 SQL 语句中使用.parquetFile.registerTempTable("parquetFile");青少年 = sqlCon ..
发布时间:2021-11-14 23:01:17 其他开发

如何强制 Spark 内联评估 DataFrame 操作

根据 Spark RDD 文档: Spark 中的所有转换都是惰性的,因为它们不会立即计算结果...这种设计使 Spark 能够更有效地运行. 有时我需要对我的数据帧进行某些操作现在和现在.但是因为数据帧操作是“懒惰评估"(如上所述),当我在代码中编写这些操作时,几乎不能保证 Spark 会实际内联执行这些操作其余的代码.例如: val someDataFrame : DataFra ..

Spark Transformation - 为什么它是懒惰的,有什么好处?

Spark Transformations 是惰性求值的 - 当我们调用 action 时,它会执行基于谱系图的所有转换. 延迟评估转换有什么好处? 与急切评估相比,它是否会提高性能和更少的内存消耗? 延迟评估 Transformation 有什么缺点吗? 解决方案 对于转换,Spark 将它们添加到计算的 DAG 中,并且只有当驱动程序请求某些数据时,这个 DAG 才会 ..
发布时间:2021-11-12 05:30:01 其他开发

惰性洗牌算法

我有一大堆要以随机顺序迭代的元素.但是,我无法修改列表,也不想创建它的副本,因为 1) 它很大 2) 可以预期迭代会提前取消. List数据 = ...;迭代器洗牌 = 洗牌(数据);而 (shuffled.hasNext()) {T t = shuffled.next();if (System.console().readLine("你想要 %s 吗?", t).startsWith("y") ..
发布时间:2021-10-26 18:41:18 其他开发