2013-01-21 12 views
7

Attualmente sto seguendo una lezione per imparare l'elisp, quindi non ho esperienza con questa lingua. Sto provando a leggere in modo interattivo in due input (la larghezza e la lunghezza di un rettangolo) e quindi li uso per chiamare una funzione per calcolare l'area del rettangolo. Il codice che ho è come segue:Come leggere interattivamente in due input e usarli in una chiamata di funzione

(defun rectangle_Area(w l) 
"Compute the area of a rectangle, given its width and length interactively." 
(interactive "nWidth: ") 
(interactive "nLength: ") 
(setq area (rectangleArea w l))  
(message "The rectangle's area is %f." area)) 

Attualmente ottengo un numero sbagliato di errori argomenti. Come ho già detto, non ho esperienza precedente ... tutto quello che ho davvero bisogno di sapere è come memorizzare/leggere in due valori separati usando interattivo.

Grazie per tutto l'aiuto

+1

Sono piuttosto curioso di sapere chi sta offrendo una classe in elisp? – phils

+0

Protip, evita nomi di funzioni così simili (differiscono solo per '_'). Inoltre, la convenzione di denominazione elisp è quella di usare "parole separate dal trattino". Divertiti! – harpo

risposta

8

C-hfinteractiveRET:

Per ottenere risultati diversi argomenti, concatenare le singole stringhe, separandoli dai caratteri di nuova riga.

Quindi abbiamo:

(defun rectangle_Area(w l) 
    "Compute the area of a rectangle, given its width and length interactively." 
    (interactive "nWidth: \nnLength: ") 
    (setq area (rectangleArea w l))  
    (message "The rectangle's area is %f." area)) 
+0

L'ho provato in precedenza e non ha funzionato, ma penso che fosse perché avevo un personaggio in più. Ha funzionato, grazie mille !! – ola

Problemi correlati