问题标签 [lazy-evaluation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linq - Enumerable.ToDictionary 是否只检索它需要的内容?
我正在使用 Enumerable.ToDictionary 从 linq 调用中创建字典:
该调用会获取每个术语的全部内容,还是只会从我的数据提供者那里检索 TermID 和 Name 字段?换句话说,如果我这样写,我是否会节省自己的数据库流量:
clojure - Clojure-为什么这段代码在 clojure 中不起作用,我是否缺少一些惰性评估陷阱?
我是 clojure 的新手,并通过 SICP 学习它。
我无法让 SCIP 1.3.1 中的这段代码工作。
我错过了什么?
这是错误消息:
language-agnostic - 惰性评估的优点是什么?
与急切评估相比,惰性评估有什么优势?
有什么性能开销?惰性评估会变慢还是变快?为什么(或者它取决于实现?)?
在大多数实现中,惰性求值实际上是如何工作的?对我来说,这似乎会慢得多并且占用大量内存,因为变量必须存储操作和数字。那么在 Haskell 这样的语言中它是如何工作的(注意,我实际上并不知道那种语言)?惰性是如何实现和完成的,以便它不会非常慢/消耗更多空间?
scala - 将具有 N 个参数的 def 实现为 FunctionN 类型的 val
我可以使用不带参数def
的 a来实现:val
def
为什么这不能扩展到def
将 N args 实现为 val FunctionN
?我希望可以实现类似的东西:
带有懒惰的功能val
。就像是:
我知道这种语法似乎不适用于 2.8。有什么我遗漏的东西,为什么我不能将参数作为函数来实现?def
val
python - Python中的懒惰评估?模块之间?
我不确定在 Python 中这样的事情是否可能,但如果是的话,它会非常有用(至少在这种情况下对我来说)。
我有一个测试框架,我想在其中将测试配置与测试命令分开。这很有用,因为它允许您混合和匹配配置/测试,而无需实际修改任何代码。我本质上只是一个简短的运行脚本,它采用配置模块和测试模块的名称,然后加载并运行两者,如下所示:
唯一的问题是我实际上希望测试脚本对配置参数有一些有限的认识。理想情况下,我希望能够在 test/commands 模块中执行以下操作:
其中 LazyArg1 和 LazyArg2 是在配置模块(或导入两个配置/命令的运行器模块)中定义的方法。有什么方法可以延迟对这些函数的评估,直到它们被实际定义?
我也愿意接受其他方式来达到同样的目的。我唯一的另一个想法是让配置模块将字典写入文件,然后让命令模块导入它(假设你只是写出repr(mydict)
)。这不是很吸引人..虽然它会起作用。
wolfram-mathematica - Mathematica 7 是否支持惰性求值?
假设我有一个保存在变量中的矩阵列表G
并应用以下操作:
Minors
返回一个矩阵,其中每个元素都是删除 (i,j) 行/列的行列式,并Diagonal
返回矩阵的对角元素列表。
我的问题是关于这些命令的评估 - 显然我不希望评估所有条目。Mathematica 是懒惰的,因为首先解析对角线,只从 Minors 中提取所需的元素,还是构建次要矩阵,然后提取其对角线元素?
这是懒惰评估的一般问题,但是对于 Mathematica 来说是新手,我会很感激有关如何改进特定问题的语法的任何提示。
haskell - 用折叠组合单子动作
让我们使用 type 的函数(Monad m) => a -> m a
。例如:
我希望能够多次应用它。我尝试的第一件事是
问题是它不适用于大型n
:
它也不起作用:
实际上,有效的是使用($!)
严格运算符
有更好或更惯用的解决方案吗?或者可能是更严格的?f
如果是重量级函数,我仍然很容易发生堆栈溢出。
UPD:我发现times
用有针对性的形式写作也不能解决编写重量级单子动作的问题。这适用于 fx = Just (x+1) 但在现实世界中失败:
python - Python 惰性迭代器
我试图了解迭代器表达式的评估方式和时间。以下似乎是一个懒惰的表达:
然而,这个在构造上失败了:
我没有名为“xxx”的文件。不过,既然这东西懒惰,为什么这么快就失败了?
谢谢。
EDI:哇,我做了一个懒惰的!
php - mysql查询php
我正在向 1000 人发送电子邮件。我有一个 php 发送电子邮件。它工作正常。我想知道,在我的查询中,我怎样才能一次发送 100 个。
是这样的吗:
ETC...
谢谢。
python - 在 Python 中热切地评估布尔表达式
有没有办法(使用eval
或其他方法)在 python 中急切地评估布尔表达式?
让我们看看这个:
哎呀!这非常好,因为无论y
' 值如何,这都是错误的。问题是,y
甚至可以是未定义的,我想得到那个例外。即使事先知道结果,如何让 python 评估所有表达式?
希望我说清楚了!谢谢,
曼努埃尔
编辑:请记住,不能修改表达式,只能修改评估技术。