ich gefragt werde, den folgenden Code zu interpretieren:Schema Filterfunktion Code Bedeutung
(define (filter p l)
(cond
((null? l) ’())
(#t (let ((result (filter p (cdr l))))
(if (p (car l))
(cons (car l) result)
result)))))
und die Lösung ist „filter
kehrt Elemente e
in l
wo (p e)
ist #t
“ aber ich bin nicht wirklich sicher, was die dritte Linie macht. ist das #t
sagend, dass wir immer diese Bedingung annehmen? Wie funktioniert das "Let" in diesem Fall?
Verwenden Sie die Standardeinrückung - zerlegen Sie Ihre Ausdrücke und setzen Sie jeden Unterausdruck in eine eigene Zeile, damit es klar wird. - #t case: Ja, es stimmt, also ist es erfolgreich und die Klausel wird ausgeführt - es sei denn, eine darüber liegende Klausel wurde gewählt. –
@WillNess danke! Das hat es klarer gemacht. – greenteam
@WillNess Wenn dies der Fall ist, kann es beim Editieren der Frage zusätzlich zum Zurücksetzen des Codes, der falsch formatiert werden soll, auch sinnvoll sein, ihn zu bearbeiten, um auch nach der richtigen Formatierung zu fragen, damit die Antwort sinnvoll ist. –