将程序的一部分作为Racket中的数据处理
我必须说,我真的不知道如何称呼我正在寻找的东西,所以也许标题不是那么准确 我有一个程序,可以绘制一些点。将程序的一部分作为Racket中的数据处理,racket,Racket,我必须说,我真的不知道如何称呼我正在寻找的东西,所以也许标题不是那么准确 我有一个程序,可以绘制一些点。generate list函数生成一个包含n(x,y)个坐标的列表,get points生成另一个列表,该列表的每个x(从(x,y))可被n整除。 我肯定可以调用points多少次,但我正试图通过只编写一次points函数来减少过程) Bellow是一个没有产生任何有用信息的示例,但我正在寻找以类似方式简化代码的方法 (plot (list (axes 0 0) (
generate list
函数生成一个包含n(x,y)个坐标的列表,get points
生成另一个列表,该列表的每个x(从(x,y))可被n整除。我肯定可以调用
points
多少次,但我正试图通过只编写一次points
函数来减少过程)
Bellow是一个没有产生任何有用信息的示例,但我正在寻找以类似方式简化代码的方法
(plot (list
(axes 0 0)
(for ([i (in-range 2 5)])
(points (get-points (generate-list 1000) i)
#:color i))))
当然,任何只编写一次points
函数的替代方法都会有很大帮助。尝试以下方法:
循环丢弃主体表达式在每次迭代中生成的值,同时循环将它们放入列表中,并返回列表,以便将所有点都包含在到的输入中
(顺便说一句,这个嵌套列表是可以的,因为它允许一个
渲染器树作为输入。)尝试for/list
而不是for
哦,有很多版本的for循环。谢谢你!如果你不介意后续问题,你能帮我一点忙吗?我写了一些东西,生成了我想要绘制的内容的等效版本,但是我不知道如何将引用转化为列表或其他内容,以便将其绘制为(plot-to-plot)
。下面是代码:(定义到绘图(轴0))(用于([i(范围2-5)])(设置!到绘图(附加到绘图上)(点(获取点(生成列表100)(unquote i))):颜色(unquote i)))))
我建议您在创建列表时不要使用”
quote。使用诸如list
、append
、for/list
、map
、filter
等都是基于表达式的,而不像引用是基于数据的
(plot (list
(axes 0 0)
(for ([i (in-range 2 5)])
(points (get-points (generate-list 1000) i)
#:color i))))
(plot (list
(axes 0 0)
(for/list ([i (in-range 2 5)])
(points (get-points (generate-list 1000) i)
#:color i))))