Ich erkenne, dass es ein offensichtliches Muster in der Ausgabe dazu gibt, ich möchte nur wissen, warum die REPL von Lispbox abbricht, wenn ich versuche, etwas > 52 auszuführen. Außerdem sind alle Vorschläge zur Verbesserung des Codes mehr als willkommen. ^-^
(defun count-reduced-fractions (n d sum)
(setf g (gcd n d))
(if (equal 1 d)
(return-from count-reduced-fractions sum)
(if (zerop n)
(if (= 1 g)
(count-reduced-fractions (1- d) (1- d) (1+ sum))
(count-reduced-fractions (1- d) (1- d) sum))
(if (= 1 g)
(count-reduced-fractions (1- n) d (1+ sum))
(count-reduced-fractions (1- n) d sum)))))
Alles, was ich bekomme, wenn ich anrufe
(count-reduced-fractions 53 53 0)
ist
Auswertung abgebrochen
Es macht nicht viel Sinn für mich, wenn man bedenkt, dass es auf allen Zahlen darunter läuft (und das genaue Ergebnis zurückgibt), und dass ich (wenn ich wollte) 53 in meinem Kopf, auf Papier oder eine Zeile nach der anderen in Lisp machen könnte. Ich habe sogar viele verschiedene Zahlen größer als 53 getestet, um sicher zu gehen, dass es nicht spezifisch für 53 ist. Nichts funktioniert.
0 Stimmen
Sagen die Punkte in Ihrem Text etwas aus?
0 Stimmen
Es ist wie ein Smiley-Gesicht. ^-^, ^_^, :), etc etc etc.
0 Stimmen
Ich kenne Emoticons, ich meinte die "......" Punkte.
0 Stimmen
Sie wirken auf mich wie die Pausen einer Person, die sagt: "Ich habe keinen blassen Schimmer."
0 Stimmen
Es ist eine schlechte Angewohnheit, wirklich, ich mache es sogar, wenn ich genau weiß, wovon ich rede.....
0 Stimmen
<pedantry>Ellipsen haben traditionell 3 Punkte und werden normalerweise von einem Leerzeichen gefolgt.</pedantry>