Scheme 如何使用map将每个列表元素减去一个值?

Scheme 如何使用map将每个列表元素减去一个值?,scheme,racket,Scheme,Racket,我有一个清单(1234) 我想用一个值减去列表中的每个值(例如1) 我想返回新列表”(0 1 2 3) 我使用的是R5R 我尝试使用映射,但失败 我宁愿使用map而不是定义我自己的迭代或递归算法。如果你想(-x值)每个元素x,映射: (map (lambda (x) (- x value)) data) 或者您可以使用curried函数: (define (subtract y) (lambda (x) (- x y)))` (map (subtract value) data) 如果要

我有一个清单(1234)

我想用一个值减去列表中的每个值(例如1)

我想返回新列表
”(0 1 2 3)


我使用的是R5R

我尝试使用
映射
,但失败

我宁愿使用
map
而不是定义我自己的迭代或递归算法。

如果你想
(-x值)
每个元素
x
,映射:

(map (lambda (x) (- x value)) data)
或者您可以使用curried函数:

(define (subtract y) (lambda (x) (- x y)))`

(map (subtract value) data)
如果要对每个元素
(-x值)
,请映射:

(map (lambda (x) (- x value)) data)
或者您可以使用curried函数:

(define (subtract y) (lambda (x) (- x y)))`

(map (subtract value) data)

你用
map
试过什么?你用
map
试过什么?这个解决方案适用于我的目的,尽管我不完全理解
subtract
的参数是如何工作的,(subtract y x)接受两个参数y x…为什么我能将列表“data”传递给它?(映射(减去值)数据),是因为映射将列表分解为单个values@localplutonium
subtract
只接受一个参数并生成一个函数–
(subtract 42)
(lambda(x)(-x 42))
。我有一段时间没有使用scheme了。。。也没有对语言学习得太深入。谢谢,我将进一步研究它。这个解决方案适用于我的目的,尽管我不完全理解
subtract
的参数是如何工作的,(subtract y x)接受两个参数y x…为什么我能够将列表“data”传递给它?(映射(减去值)数据),是因为映射将列表分解为单个values@localplutonium
subtract
只接受一个参数并生成一个函数–
(subtract 42)
(lambda(x)(-x 42))
。我有一段时间没有使用scheme了。。。也没有对语言学习得太深入。谢谢,我会仔细研究的。