球拍列表清单

时间:2018-03-31 09:08:51

标签: racket

我需要创建这个:

定义使用列表列表的min& max-lists函数 (内部列表中元素的类型可以是任何类型)。

该函数返回一个列表列表 - 对于每个内部列表(在 原始清单)以下内容已完成 -

  1. 如果列表包含至少一个数字,则列表将替换为大小为2的列表,其中包含列表中的最小值和最大值。
  2. 否则,列表将替换为null。
  3. 例如

    以您可以使用的测试形式编写:

    (test (min&max-lists '((any "Benny" 10 OP 8) (any "Benny" OP (2 3)))) 
    

    => '((8 10)()))     (测试(min& max-lists'((2 5 1 5 L)(4 5 6 7 3 2 1)()))>>'((1 5)(17)()))

    现在,我已经为一个列表创建了一个函数。

    我是如何为列表列表做的?

    例如:

    (listhelp '(2 5 1 5 L)) 
    -> : (Listof Number)>>'(1 5)
    

1 个答案:

答案 0 :(得分:0)

如果你min&max有一个奇怪的名字listhelp,你可以使用map,使用for/list,或者推送你自己的递归:

(define (min&max-lists lol)
  (map min&max lol))

(define (min&max-lists lol)
  (for/list ([e (in-list lol)])
    (min&max e)))

(define (min&max-lists lol)
  (if (null? lol)
      '()
      (cons (min&max (car lol))
            (min&max-lists (cdr lol)))))