在clojure中懒惰的seqs被翻译成惯用的方案

时间:2016-04-06 08:11:55

标签: clojure scheme lazy-sequences guile

我想在方案中重写我在clojure中创建的脚本,但我不确定如何。

我在clojure中写了这个简单的脚本。它读取一些csv文件,稍微处理它们并写入新的csv文件。

它基于一系列函数,每个函数都接受一个地图作为参数并返回一个新地图

主回路使用传感器。一种换能器,由正确的顺序组成这些功能。喜欢这个

(def step1 (mapcat (comp
                    op/line-numbers
                    op/station
                    op/added-file-order
                    op/splitted-file
                    op/ingested-file)
                   )) 
然后将换能器制成懒惰序列。喜欢这个

(defn thread [path]
  (sequence
        (comp step1 step2 step3 step4)
        (op/files-collection path)))

然后将序列懒惰地写入文件。

我对在guile计划中实现相同的功能(以及将来可能更多)感到笨拙

我知道scheme有流(作为懒惰序列),但我不确定语义是否与clojure中的相同。

如何在计划中做出这样的事情?什么是这种事物的惯用方案版本?

0 个答案:

没有答案