Domanda

In Python, assumendo la seguente funzione è definita:

def function(a, b, c):
    ... do stuff with a, b, c ...

Sono in grado di utilizzare la funzione utilizzando la sequenza di Python disimballaggio:

arguments = (1, 2, 3)
function(*arguments)

Fa simile funzionalità esistono in Common Lisp? In modo che se ho una funzione:

(defun function (a b c)
    ... do stuff with a, b, c ...

E se ho un elenco di 3 elementi, ho potuto facilmente usare quei 3 elementi come parametri alla funzione?

Il modo in cui attualmente implementare è la seguente:

(destructuring-bind (a b c) (1 2 3)
    (function a b c))

C'è un modo migliore?

È stato utile?

Soluzione

Altri suggerimenti

Utilizzare la href="http://clhs.lisp.se/Body/f_apply.htm" rel="nofollow noreferrer"> apply funzione

(apply #'function arguments)

Esempio:

CL-USER> (apply #'(lambda (a b c) (+ a b c)) '(1 2 3))
6   
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top