racket - 将程序的一部分视为 Racket 中的数据
问题描述
我必须说我真的不知道如何称呼我正在寻找的东西,所以也许标题不是那么准确。
我有一个绘制一些点的程序。该generate-list
函数生成一个 n (x,y) 坐标列表,并get-points
生成另一个列表,其中每个 x(来自 (x,y))都可被 n 整除。
我绝对可以调用points
我需要多少次,但我试图通过points
只编写一次函数来减少这个过程)。
#lang racket
(require plot)
(define (generate-list n)
(if (= n 0)
empty
(cons (list (random 0 100) (random 0 100))
(generate-list (- n 1)))))
(define (get-points lst n)
(if (empty? lst)
empty
(if (= (remainder (caar lst) n) 0)
(cons (car lst) (get-points (cdr lst) n))
(get-points (cdr lst) n))))
(plot (list
(axes 0 0)
(points (get-points (generate-list 1000) 2)
#:color 2)
(points (get-points (generate-list 1000) 3)
#:color 3)
(points (get-points (generate-list 1000) 4)
#:color 4)
(points (get-points (generate-list 1000) 5)
#:color 5)))
Bellow 是一个示例,它不会产生任何有用的东西,但我正在寻找以类似方式简化代码的东西。
(plot (list
(axes 0 0)
(for ([i (in-range 2 5)])
(points (get-points (generate-list 1000) i)
#:color i))))
当然,任何只编写points
一次函数的替代方案都会有很大帮助。
解决方案
推荐阅读
- csv - 我们可以比较多个输入文件的列以在 SSIS 中派生一个新列吗
- android - 自动创建新表与巨型表
- r - 如何加载本地存在于我的硬盘上的 R 包?
- r - 组合框示例:找不到 tk2list.configure
- ios - iOS 上的 Safari 在调用 canvas.toDataURL 时抛出 SECURITY_ERR: DOM Exception 18
- python - 为什么设置 `random.seed(42)` 在 pytorch 中没有给我相同的结果?
- scala - 目标类型的隐式转换和按名称参数
- json - 为什么在尝试使用 serde_json 解析数据时总是出现“尾随字符”错误?
- c# - 在哪里放置工厂方法?
- node.js - 如何将我的 cam 流保存在我的服务器实时节点 js 中?