Kleines Problem mit Racket/Lisp

Neue Frage »

Auf diesen Beitrag antworten »
Shizmo Kleines Problem mit Racket/Lisp

Hallo, ich versteh grad was nicht, hier mal ein sehr kurzer Coder.
code:
1:
2:
3:
4:
5:
6:
7:
#lang racket
(define (doublemax x y z)
    (define max
      (cond ((> x y z) x)
            ((> y x z) y)
            (else z)))
    (+ max max))


Es sollte das Maximum suchen und dann verdoppeln.
Ich komme aber zu diesen spannenden Ergebnissen:
code:
1:
2:
3:
4:
5:
6:
7:
> (doublemax 1 2 3)
6
> (doublemax 1 3 2)
4
> (* 2 (max 1 3 2))
6
> 


Wenn ich nur max aufrufe passt alles, wenn ich aber die komplette Funktion doublemax aufrufe, nimmt er immer nur das letzte Argument und verdoppelt es, warum?

LG
 
Auf diesen Beitrag antworten »
eulerscheZahl

Ich kann kein racket und habe es auch nicht ausprobiert. Kann also sein, dass ich Unsinn schreibe.
Aber es gibt eine Bibliotheksfuktion max, wird vielleicht die aufgerufen?
Und müsste es nicht %> heißen, mit nur 2 Operatoren?
Auf diesen Beitrag antworten »
Shizmo

Ja mit der Bibliotheksfunktion hast du recht Daumen hoch
Und mit 2 Operanden hat es funktioniert, habs dann einfach mit and verknüpft und geklammert. Das % braucht man allerdings nicht.

LG
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »