defun y docstrings en Lisp
Define una función de ritmo de caminata con su docstring y la llama con y sin el argumento opcional.
;; DEFUN binds a name to a function; the string after the lambda list
;; is a docstring the environment can hand back, not a comment.
(defun hike-hours (miles &optional (pace 2.5))
"Return the hours needed to walk MILES at PACE miles per hour."
(/ miles pace))
;; An &optional argument may be left out, and then takes its default.
(defvar *loop-trail* (hike-hours 12))
(defvar *steep-trail* (hike-hours 12 1.5))
(format t "loop trail: ~,1f hours~%" *loop-trail*)
(format t "steep trail: ~,1f hours~%" *steep-trail*)
(format t "docstring: ~a~%" (documentation 'hike-hours 'function))
Cómo funciona
(defun hike-hours (miles &optional (pace 2.5))nombra la función y le da un valor por defecto apace.- La cadena de la línea siguiente es un docstring, que
(documentation 'hike-hours 'function)lee de vuelta. (hike-hours 12)toma el ritmo por defecto y(hike-hours 12 1.5)aporta el suyo.
Palabras clave y builtins usados aquí
defundefvardocumentationformat
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 585
- Tokens
- 60
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 45 segundos.
Paso 1 de 3 en Funciones; paso 10 de 27 en Fundamentos del lenguaje.