首页 > 解决方案 > 如何将 ormap 应用于单个变量?- 方案

问题描述

现在在这个项目上工作了几个小时,我无法弄清楚。

我有一个数字列表,如果这些数字中的任何一个在不使用递归的情况下与单独的数字匹配,我需要它来生成 true。

(compare-numbers (list 1 2 3) 2) => true

我知道我必须做的是在本地函数上使用 ormap,但我不知道如何制作该函数。

我写的是

(define (comp? num)
  (equal? num num-lst)) ;Where num-lst is the list of accepted numbers

但我知道我不能使用它,因为 ormap 需要两个列表才能工作。

任何人都可以提示我解决这个问题吗?谢谢。

标签: schemeracket

解决方案


ormap不需要两个列表。它只需要一个将列表元素与给定数字进行比较的过程,您可以使用lambda.

(define (compare-numbers lst num)
  (ormap (lambda (n) (equal? n num)) 
         lst))

推荐阅读