2017-03-14 2 views
1

Ich frage mich, ob ich im Racket eine Anzahl von Elementen aus einer Liste, die ich bereits erstellt habe, erhalten könnte. So kann sagen, ich eine Liste in Racket gemachtAbrufen von Elementen aus einer Liste im Racket

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

Jetzt habe ich eine Funktion definieren mag, die n Anzahl der Elemente aus dieser Liste abholt und sie in einer neuen Liste anzeigen. Also sagen wir n = 4 Ich möchte 4 zufällige Elemente aus der Basisliste, die ich oben gemacht habe. Ein Beispiel der Ausgabe, die ich suche, wäre

Gibt es eine Möglichkeit, die ich in Racket tun kann?

Antwort

1

Es gibt eingebaute Prozeduren, die buchstäblich tun, was Sie brauchen: Mischen Sie die Liste und nehmen Sie n Elemente daraus. Versuchen Sie dies:

(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

Genau das, was ich versuchte zu tun, danke! – Smurfffy

Verwandte Themen