2017-03-14 152 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