在lisp中使用什么来代替python的产量?

时间:2017-05-19 20:13:58

标签: python lisp

这个问题与Python generators in various languages有关,但我想问一些更具体的问题。

假设我有一些数据,我想按元素读取该数据元素,然后将过滤器应用于生成的元素流。过滤器可能会删除一些元素,聚合或分解其他一些元素。这是一个Python示例:

# Very big data
data = list(range(10))

# Feed data element by element
def source(data):
    for i in data:
        yield i

# Several input elements get aggregated into one output element
def filter1(source):
    for e1 in source:
        e2 = next(source, 0)
        yield e1 + e2

# One input element gets disaggregated into several output elements
def filter2(source):
    for e in source:
        for c in str(e):
            yield int(c)

# Collect the final results into a list
rslt = [e for e in filter2(filter1(source(data)))]

结果是[1, 5, 9, 1, 3, 1, 7]。对于这种情况,是否存在惯用的lisp方法?

0 个答案:

没有答案