在列表中的每个元素上运行一个函数,并使用cons输出答案

时间:2016-03-27 17:54:11

标签: scheme racket

我有一个函数,它接受一个列表并将列表中的每个元素传递给另一个返回数值的函数。我需要一个函数,它接受一个列表来输出结果列表,类似于map的工作方式。

这是我迄今为止所拥有的,但它给了我意想不到的输出。

(define (lister x)
  (cond ((null? x) '())
  (cons (solver (car x)) (lister (cdr x))) )
)

(lister '(
  (element 0)
  (element 3)
))

预期输出应为'(0 3),但它会返回'()

1 个答案:

答案 0 :(得分:1)

cond用法错误。

尝试:

(define (lister x)
  (cond [(null? x) '()]
    [else (cons (solver (car x)) (lister (cdr x)))]
  ) 
)

或使用if

(define (lister x)
  (if (null? x) 
    '()
    (cons (solver (car x)) (lister (cdr x))) 
  )
)