typestar

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

  1. (defun hike-hours (miles &optional (pace 2.5)) nombra la función y le da un valor por defecto a pace.
  2. La cadena de la línea siguiente es un docstring, que (documentation 'hike-hours 'function) lee de vuelta.
  3. (hike-hours 12) toma el ritmo por defecto y (hike-hours 12 1.5) aporta el suyo.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Funciones; paso 10 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →