问题标签 [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.

0 投票
3 回答
2615 浏览

haskell - Haskell 中的“懒惰 IO”?

我正在尝试在haskell 中进行一个小实验,想知道是否可以利用惰性来处理IO。我想编写一个函数,它接受一个字符串(一个字符列表)并懒惰地产生一个字符串。然后我希望能够从 IO 懒惰地向它提供字符,这样每个字符都会在可用时立即处理,并且在必要的字符可用时生成输出。但是,我不太确定是否/如何从 IO monad 中的输入生成惰性字符列表。

0 投票
5 回答
2005 浏览

haskell - OCaml 和 F# 中的堆栈溢出,但在 Haskell 中没有

我一直在比较有趣的不同语言在执行以下程序时的速度:for i from 1 to 1000000 sum the product i*(sqrt i)

我的一个实现(不是唯一一个)是构造一个列表 [1..1000000],然后使用特定函数折叠。

该程序在 Haskell 中运行良好且快速(即使使用 foldl 而不是 foldl'),但在 OCaml 和 F# 中堆栈溢出。

这是 Haskell 代码:

这是 OCaml 之一:

为什么 OCaml/F# 实现堆栈溢出?

0 投票
2 回答
1352 浏览

ruby - Rspec,将规范文件映射到正在测试的 ruby​​ 文件

我想要的是一种不必在每个规范文件中“要求”被测类的方法。

所以希望有一种方法可以设置被测源代码的根目录,并且 rspec 自动映射我的测试,或者任何其他自动将规范映射到 ruby​​ 文件的方法。

在 Rspec for rails 中,这很神奇,但这不是 rails 项目,我找不到任何有用的信息。

0 投票
4 回答
1609 浏览

c# - 在没有参数但使用本地参数 c# 的情况下调用委托

我发现自己做了很多以下事情,我不知道是否有任何副作用,但在 WinForms C# 应用程序中考虑以下内容。(请原谅我在输入代码时出现的任何错误,而不是复制粘贴任何内容)

这有什么问题吗?还是我应该走很长的路>_<

不同之处在于参数是传入而不是使用局部变量,这是一些非常甜蜜的 .net 魔术。我想我曾经看过反射器,它创建了一个全新的类来保存这些变量。

那么这有关系吗?我可以偷懒吗?

编辑:注意,显然不关心返回值。否则我将不得不使用我自己的类型化委托,尽管我仍然可以使用局部变量而不传递它!

0 投票
1 回答
3960 浏览

hibernate - 更新 JPA-Hibernate 实体而不从数据库中选择它

我有一个名为 Execution 的休眠实体。它在我的流程开始时创建并在结束时更新,表明它是如何完成的。

我想更新该实体的单个属性,而不导致在我的数据库中进行选择。

Execution execution = entityManager.getReference(Execution.class, executionId); execution.setStatus(Status.FINISHED);//--> 调用此方法会在我的数据库中触发一个 SELECT。我不希望它发生,我只想更新我的实体。

这不是特定于此方法的,任何其他调用的方法都会导致 SELECT 子句。事实上,选择似乎发生在我的方法被调用之前。我的印象是休眠代理在我的类无参数构造器中放置了一些代码,以在每次调用任何方法时触发选择。

是否可以在不触发数据库中的 SELECT 语句的情况下更新 JPA/Hibernate 实体?

0 投票
1 回答
456 浏览

jquery - jQuery 插件“懒惰”无法加载两个带有 $.getJSON 调用的 jQuery 插件:仅在 Firefox 中递归过多

插件:jQuery 懒惰()

我在这里问是因为项目页面本身似乎已经死了。

哪些步骤将重现该问题?1. 嵌入两个都使用 $.getJSON 函数的 jQuery-Plugins 会导致 firefox 中出现“太多递归错误”。如果用惰性引用相同的脚本,它工作正常。问题只存在于 Firefox 中。2. 看这里的例子:

http://www.marctv.de/lazybug/lazy.htm

什么是预期的输出?你看到了什么呢?预期:两个 getJSON 调用都应该可以正常工作。但是懒惰我得到一个“递归过多”的错误。

您使用的是什么版本的产品?在什么操作系统上?最新的懒惰版本。所有 jquery 版本都可以重现错误。

我们能做什么?有任何想法吗?

0 投票
3 回答
3930 浏览

spring - Spring中是否有spring惰性代理工厂?

Wicket 有这个称为惰性代理工厂的设备。鉴于:

这个想法是自动生成一个代理来代替'beanx',然后只有在某些东西实际调用它的方法时才初始化beanx。

似乎这可能是 Spring 的核心功能。它在某个地方吗?

0 投票
4 回答
10877 浏览

python - Python,懒人列表

是否可以在 Python 中懒惰地评估列表?

例如

如果列表设置为延迟评估,那么最后一行将是 [2]

0 投票
1 回答
1689 浏览

algorithm - haskell 中帕斯卡三角形的变体 - 惰性求值问题

为了解决一些问题,我需要计算帕斯卡三角形的变体,其定义如下:

对于给定的 n,我想有效地获得第 n 行 (f(n,1) .. f(n,n))。另一个限制:如果 f(n,k) >= 2^32,则 f(n,k) 应为 -1。

我的实现:

问题:对于非常大的数字,我得到堆栈溢出。有没有办法强制haskell评估整个列表?很明显,每一行不能包含比上限更多的元素,因为它们最终会变为 -1 并且不会被存储,并且每一行只依赖于前一行。由于惰性评估,只有每行的头部被计算,直到最后一行需要它的第二个元素,并且沿途的所有树干都被存储......我在 C++ 中有一个非常有效的实现,但我真的想知道是否有在haskell中完成它的方法也是。

0 投票
11 回答
8771 浏览

oop - 一些可靠的 OOP 批评?

我想请您向我提供一些文章(可能是书籍),您可能会发现这些文章非常有说服力地批评 OOP 方法。

我已经在 WWW 上阅读了一些关于这个主题的内容,但我并没有真正找到“明确的消极因素”。

这与我对 OOP 的个人态度无关,但我真的很想为任何类型的讨论和抽象思维提供一些建设性的、严谨的基础。


您也可以发布一些原创研究,但请非常有建设性(作为我的个人要求)。