2017-03-14 154 views
1

我在想,如果在球拍中,我可以从已创建的列表中获得n个物品。因此,可以说我在拍从球拍列表中获取物品

做了列表
(define base(list 1 2 3 4 5 6 7 8 9 10)) 

现在我想定义一个函数,它会选择从该列表项的n个号码,并在新的列表中显示出来。所以让我们说n = 4我想从上面列出的基础列表中选择4个随机项目。输出即时寻找的一个例子是

'(9 4 3 10) 

有没有一种方法,我可以在球拍中做到这一点?

回答

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) 
+1

正是我想要做的,谢谢! – Smurfffy