Eine Funktion, die ich bauen soll, soll eine Liste von Zahlen als Parameter aufnehmen und eine einzelne Funktion als eine Ausgabe geben, die wie folgt vorgeht: Wenn die Nummer in der Liste ist a positive Zahl, addiere es, wenn es negativ ist, multipliziere es mit ihr, und wenn es 0 ist, quadriere die Zahl. Wenn ich beispielsweise (4 -1 0) übergebe, sollte es eine Funktion zurückgeben, die einen einzelnen Parameter aufnimmt, 4 addiert, mit -1 multipliziert, sie quadriert und den Wert zurückgibt.Ein Funktionsgenerator in Schema
Ich denke, ich bin auf dem richtigen Weg, aber ich bin in diesem Punkt ernsthaft verwirrt. Ich bin nicht unbedingt auf der Suche nach einer Lösung, aber jede Hilfe wäre toll. Hier ist, was ich bisher:
(define (buildseries L)
(define (a x)
(lambda (y) (+ x y)))
(define (m x)
(lambda (y) (* x y)))
(define (s x)
(lambda (x) (* x x)))
(define (funcfind d)
(cond
[(null? d) (a 0)]
[(> d 0) (a d)]
[(= d 0) (s d)]
[(< d 0) (m d)]))
(funcfind (first L)))
((buildseries '(2)) 2)
Ich weiß nicht, wie eine Funktion erstellen, die ein Verbund aus anderen Funktionen ist ... einfach verloren Gefühl hier.
Gehen Sie zurück zu den Grundlagen. Ihre Eingabe ist eine Liste, ein rekursiver Datentyp. Schreibe eine rekursive Funktion. Was sind die zwei Varianten einer Liste? .... –