Ich versuche, ein Zeichen basierend auf einer bedingten Anweisung auszudrucken.Zeichen werden mehr als zweimal gedruckt (Common Lisp)
(defvar enctext)
(defun encrypt(enctext)
(if (eq 'A (first enctext))
(princ 'H)))
Und hier ist, was ich habe die Funktion zum Ausführen der Zeichen ‚H‘ druckt zweimal
(load "lisptest.lisp")
;; Loading file lisptest.lisp ...
** - Continuable Error
DEFUN/DEFMACRO(ENCRYPT): #<PACKAGE POSIX> is locked
If you continue (by typing 'continue'): Ignore the lock and proceed
The following restarts are also available:
SKIP :R1 skip (DEFUN ENCRYPT # ...)
RETRY :R2 retry (DEFUN ENCRYPT # ...)
STOP :R3 stop loading file /home/students/cante008/cs351/lisptest.lisp
ABORT :R4 Abort main loop
Break 1 [2]> continue
WARNING: DEFUN/DEFMACRO: redefining function ENCRYPT in
/home/students/cante008/cs351/lisptest.lisp, was defined in C
;; Loaded file lisptest.lisp
T
[3]> (setf x '(A))
(A)
[4]> (encrypt x)
H
H
ganz am Ende, und ich bin nicht sicher, warum das so ist.
Dies ist mein erster Schritt, um eine Caesar-Chiffre tun
Nitpicking: Sie könnten mit '(values)' null Wert zurückgeben, obwohl es keinen großen Unterschied macht. – coredump
@coredump Danke. Ich wusste fast, dass ich falsch lag, als ich das schrieb, konnte aber nicht ganz an '(Werte)' denken: D –
Obwohl in den meisten Kontexten das Ergebnis von '(values)' nicht von 'nil' zu unterscheiden ist. – Vatine