En Python, suponiendo que la siguiente función se define:Lisp común - ¿Desempaquetar lista? (Similar a Python)
def function(a, b, c):
... do stuff with a, b, c ...
soy capaz de utilizar la función utilizando la secuencia de Python desembalaje:
arguments = (1, 2, 3)
function(*arguments)
¿El funcionalidad similar existe en Common Lisp ? Así que si tengo una función:
(defun function (a b c)
... do stuff with a, b, c ...
Y si tengo una lista de 3 elementos, que podría utilizar fácilmente los 3 elementos como parámetros a la función?
La forma en que actualmente implemento es el siguiente:
(destructuring-bind (a b c) (1 2 3)
(function a b c))
¿Hay una mejor manera?
Tenga en cuenta que esto sólo funciona cuando sólo argumentos de la función están contenidos en la lista. De lo contrario, 'desestructurar-bind' es necesario, y coincide con la capacidad de python para' function (* args, another_arg) '. – Mark