从Racket中的列表中获取项目

时间:2017-03-14 16:08:10

标签: list random scheme racket

我想知道在Racket中我是否可以从我已经创建的列表中获得n个项目。所以我要说我在Racket中列出了一个列表

(define base(list 1 2 3 4 5 6 7 8 9 10))

现在我想定义一个函数,它将从该列表中选择n个项目并将它们显示在新列表中。所以,假设n = 4我想要从上面列出的基本列表中选择4个随机项。我正在寻找的输出的一个例子是

'(9 4 3 10)

我有没有办法在Racket中做到这一点?

1 个答案:

答案 0 :(得分:1)

有内置的程序可以满足你的需要:改变列表并从中获取n个元素。试试这个:

(define (take-n-random lst n)
  (take (shuffle lst) n))

(define base (list 1 2 3 4 5 6 7 8 9 10))
(take-n-random base 4)

=> '(6 9 1 7)