- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我将一个 221 行的 .csv 文件——使用 clojure-csv 解析——运行到这个函数中时
(defn test-key-inclusion
"Accepts csv-data param and an index, a second csv-data param and an index,
and searches the second csv-data instances' rows (at index) to see if
the first file's data is located in the second csv-data instance."
[csv-data1 pkey-idx1 csv-data2 pkey-idx2 lnam-idx fnam-idx]
(reduce
(fn [out-log csv-row1]
(let [cmp-val (nth csv-row1 pkey-idx1 nil)
lnam (nth csv-row1 lnam-idx nil)
fnam (nth csv-row1 fnam-idx)
temp-rc (first (key-pres? cmp-val pkey-idx2 csv-data2))]
(concat out-log (sorted-map cmp-val (vector lnam fnam)))))
{}
csv-data1))
然后打印结果,一切正常。
如果我通过上面的函数运行一个 2672 行的 .csv 文件——也用 clojure-csv 解析——然后尝试打印它,我得到一个堆栈溢出错误——线程“main”java.lang 中的异常.堆栈溢出错误
所以我的问题是:
1) 是否应该在 lazy-seq 中包装对此函数的调用来解决我的问题?
2) 我不想要一个列表,所以将把 lazy-seq 调用包装在一个 vec turn 中我的序列变回一个向量,而没有在内存中实现整个序列,这就是让惰性序列再次变得不惰性?
谢谢。
最佳答案
1) 我希望让序列变得懒惰不会有帮助,因为打印会在打印之前评估实现它。而是尝试 doseq
或 (map print my-seq)
以较小的 block 打印它。
2) 是的,将它包装在 vec 中会给你想要的东西 :) 尽管用 into
包装你的 reduce 会一直保持它是一个向量。即:(减少为 [] [[1] [2] [3]] )
--> [1 2 3]
(into out-log (sorted-map cmp-val (vector lnam fnam)))))
关于clojure - 如何将 Reduce-Realized 序列转回 Lazy Vector 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132565/
我有一个基于 PHP 的 TaskManager,现在我想在 Symfony 上构建它。 我有这样的查询字符串来填充当天的任务表: (SELECT id, name, description, ti
我需要编写一个程序来生成柯西分布的随机实现 具有空位置和单位比例。 我还需要在 -5 和 5 个区间之间制作直方图,以随机实现 1,000 个点,连同理论曲线确保它们具有相同的单位。 我计算了累积分布
realize() 和 prefetch() 到底是什么意思? 对于音频文件: InputStream is = getClass().getResourceAsStream("/SMS.mp3");
我必须创建一个名为“Realizations”的表,但它的文件必须以今天的日期命名(例如“12092016.dbf”)。我可以从我的 C# 程序中获取当前日期,但是如何在查询字符串中设置文件名???
假设有一个整数数组: A[]={2, 2, 9, 8, 5, 7, 0, 6} 和模板: B[]={1, 0, 0, 1, 1, 1, 0, 1} 我的问题是我们如何根据 B[] 重新排列 A[] 使
我正在开发一个浏览器游戏,并陷入了“理论问题”。我想让用户“调平”特定的建筑物以获得更好的统计数据。 示例: 煤矿:Lvl 1(如果用户点击“升级”,它将在 X 小时后升级到 lvl2,依此类推) 现
我试图实现一个函数调用缓冲区。我的问题是功能取决于用户的答案。因此,函数可以执行很长时间(由于等待用户回答),因此必须按以下顺序调用我的函数: function 1 started waiti
我正在使用 JavaScript 开发 Windows 8 应用程序。该应用程序似乎工作正常,但有时在运行时我会收到错误消息:“JavaScript 错误:资源在错误的渲染目标上实现”。该错误来自名为
我正在编写一个小型纸牌游戏,但遇到了困难。只是一些基本的:1) View 观察模型2) Controller 决定什么时候显示输出窗口,什么时候显示输入窗口3) 模型做所有的数学运算 好吧,看起来我的
BASH 中类似以下内容 iDAV=0 for line in $(cat file); do IFS_bk=$IFS; IFS=' '; arr=($line) if [[ ${arr[0]
我目前正在寻找 http Push Technology 的可用实现.至少它必须支持 channel 订阅和 channel 发布。 有哪些方便的 C++(或 C)实现可用? 最佳答案 唯一想到的(在
总的来说,我的 makefile 可以工作。既然有人会问,这里仅供引用: HEADERS = *.h OBJS = *.o MYFORWARDS = *.c WARNS = -Wall CC = g
在 Agular Material 网站 ( https://material.angularjs.org/#/ ) 上有一个带有列表的侧栏。该列表具有“类似 Accordion ”的功能,单击某些项
当我将一个 221 行的 .csv 文件——使用 clojure-csv 解析——运行到这个函数中时 (defn test-key-inclusion "Accepts csv-data pa
正如我所假设的,这对于 ARC 下的不可变对象(immutable对象)应该没问题: - (id) copyWithZone:(NSZone *)zone { return self; } 但
我的任务的完美解决方案是属性 column-gap,但它还没有广泛支持 flexboxes。 所以我需要一个 hack 来即兴发挥这个功能。 最好的做法是什么? 我的愿望是使用justify-cont
我正在迁移到 Jetpack Compose 1.0.0-beta01,但遇到编译器崩溃。java.lang.IllegalStateException: Attempted to realize g
我是一名优秀的程序员,十分优秀!