类似于Map的函数,用于在循环中的每次迭代中返回多个值

时间:2012-03-23 12:48:53

标签: list stream scheme racket map-function

有没有明智的改变方法:

(for ([cos-t (stream-map cos t-range)]
      [sin-t (stream-map sin t-range)])
  ...)

这样的事情:

(for ([(cos-t sin-t) (... t-range)]
  ...)

这不是一个真正的地图功能,因为你无法以这种方式制作一个列表。我只是在寻找更好,更简单的做法。

1 个答案:

答案 0 :(得分:4)

使用for表单已经可以使用您想要的内容。使用in-parallel函数以这种方式组合两个序列:

(for ([(cos-t sin-t) (in-parallel (stream-map cos t-range)
                                  (stream-map sin t-range))])
  (displayln (+ cos-t sin-t)))