问题标签 [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 投票
10 回答
24034 浏览

java - 带有惰性求值的 String.format

我需要类似于String.format(...)方法的东西,但需要延迟评估。

这个lazyFormat 方法应该返回一些对象,其toString() 方法将评估格式模式。

我怀疑有人已经这样做了。这在任何库中都可用吗?

我想替换它(记录器是 log4j 实例):

有了这个:

仅当启用调试日志记录时,我才需要lazyFormat 格式化字符串。

0 投票
6 回答
23428 浏览

django - 在 JSON 中返回纯 Django 表单错误

我有一个 Django 表单,我正在一个普通的 Django 视图中验证它。我试图弄清楚如何提取纯错误(没有 HTML 格式)。以下是我目前正在使用的代码。

有了这个,我从 Django 中得到了臭名昭著的代理对象错误。将每个错误强制转换为 Unicode 也无济于事,因为这样每个错误的__unicode__方法都将被有效地调用为 HTML 化它。

有任何想法吗?

编辑:

对于那些感兴趣的人,这是 的定义json_response

0 投票
4 回答
1451 浏览

list - 如何使用 Eager Language 制作惰性列表?

我想在 Scheme 中创建一个惰性列表。这就是我到目前为止所拥有的。

惰性列表的问题在于,Scheme 首先计算内部表达式(惰性列表(+ from 1))导致过程进入无限递归。

有没有办法让 con-stream 在没有任何评估的情况下采用这个内部表达式?

0 投票
3 回答
33259 浏览

haskell - Haskell 声明中的感叹号是什么意思?

当我尝试使用一个真实的项目来驱动它来学习 Haskell 时,我遇到了以下定义。我不明白每个论点前面的感叹号是什么意思,我的书似乎也没有提到它。

0 投票
11 回答
3132 浏览

compiler-construction - 是否有使用严格评估的 Haskell 编译器或预处理器?

我正在寻找一个默认使用严格评估而不是惰性评估的 Haskell 编译器。我只会使用 OCaml,但 Haskell 的语法比 OCaml 的要好得多(而且 Haskell 是纯粹的,并且具有很酷的特性,例如类型类)。

我真的宁愿不要在我的程序中不断地放!s 和s 。$!带有开关或预处理器以放入严格性注释的编译器会非常好。如果在某些地方也有一种使用惰性评估的方法,那也会很有帮助,以防万一我想要一个无限列表之类的东西(我可能永远不会)。

请不要试图说服我懒惰的评估更好,我真的需要性能。IIRC,Simon Peyton Jones 甚至说惰性评估并不是真正必要的,它主要是为了防止他们使语言变得不纯。

0 投票
4 回答
40098 浏览

nhibernate - nhibernate 延迟加载选项

nhibernatelazy="true"和in有什么区别?lazy="proxy"

0 投票
1 回答
695 浏览

functional-programming - 填充二进制块惰性序列

我有 Clojure 函数,它接受一个数字序列,将其切成适当的位数并返回块的惰性序列(首先是最低位)。它填充最后一个块的高位以填充块大小,我需要有关“最佳方式(tm)”的建议来记录填充量,同时保持它的懒惰和功能?

智慧之言大受赞赏。

参数:

  • in-block-size 是输入序列中每个数字的有效位数
  • out-block-size 是返回的惰性序列中每个数字的有效位数。
  • bytes 是从中提取位的惰性数字序列

这是一个示例,它采用三个字节的序列并将其分解为两个 20 位数字的序列(然后将其打印为二进制字符串)。

20 位数字序列中的第二个数字只有四个有效位,并添加了有效的 16 个零。如果我随后将此序列传递给另一个想要对该序列执行某些操作并通过网络发送它的函数;接收端的代码需要知道不打印/存储/等最后 16 位。

PS:这些可以链接。(block-seq 20 15 (block-seq 8 20 (read-bytes-from-file)))

0 投票
3 回答
974 浏览

c# - C# 如何使用正则表达式拆分 (A:B=C)*?

这应该是一个非常简单的问题,但我似乎无法找到正确的解决方案。格式中有一个字符串:

而 A、B 和 C 是字母数字(可以是小写也可以是大写)。A 和 B 的长度为 1+,C 可能为空。

我想我必须使用类似的东西

但我不知道如何以一种懒惰的方式使其匹配。我也不确定如何获得各自匹配的结果,所以我很感激一些代码示例。

如果你能给我一个提示,我会很高兴。

0 投票
3 回答
913 浏览

parsing - 解析:F# 中的延迟初始化和相互递归的单子

我一直在用 F# 编写一个小单子解析器组合器库(有点类似于FParsec),现在尝试为编程语言实现一个小解析器。

我首先在运行良好的 Haskell(使用 Parsec)中实现了代码。中缀表达式的解析器被设计成相互递归的。

由于函数的顺序无关紧要,并且 Haskell 以非严格的方式进行评估,这没关系,但 F# 正在严格评估。

F# 现在要么抱怨递归对象,并且StackOverflowException由于无限循环而在运行时抛出一个,或者它甚至不编译源代码,因为“一个值将是它自己定义的一部分”。

防止此错误的最佳方法是什么。调试器建议我改用函数或lazys,但我应该在这里做什么懒惰?

0 投票
4 回答
2891 浏览

sql-server - 比较数据库结构:如何创建 SQL 补丁?

我有两个 SQL Server (2000) 数据库。两者都用于同一个项目,但版本不同。基本上,旧数据库来自我们的 TEST 环境。新数据库来自 DEVELOPMENT 环境。我们还有一个验收、生产和维护环境,它们都包含相同的项目。(这是我们的开发街,将版本从 D 移到 T 再到 A 到 P,最后是 M。)

现在,开发数据库结构发生了变化。添加了一些表,添加或删除了索引,字段的类型已更改,可空字段已变为不可空,诸如此类。测试数据库需要升级到新的结构,但不会丢失任何数据。现在,我正在用大量的体力劳动来做这件事。我保留了一个结构更改列表,一旦一切准备就绪,我就会编写一个更新脚本来修补旧的测试数据库。

但作为一名软件工程师,我只是故意偷懒。那么,是否有一些简单的工具可以比较两个数据库结构并自行生成更新脚本?

(只是为了改变结构,顺便说一句。没有数据操作!)