W Pythonie, przyjmując następującą funkcję definiuje:Common Lisp - Lista rozpakowywania? (Podobnie jak w Pythonie)
def function(a, b, c):
... do stuff with a, b, c ...
jestem w stanie korzystać z funkcji za pomocą sekwencji Pythona rozpakowaniu:
arguments = (1, 2, 3)
function(*arguments)
Does podobną funkcjonalność istnieje w Common Lisp ? Tak więc, jeśli mam funkcję:
(defun function (a b c)
... do stuff with a, b, c ...
A jeśli mam listę 3 elementów, mogę łatwo wykorzystać te 3 elementy jako parametry do funkcji?
Sposób, w jaki obecnie wdrożyć go jest następujący:
(destructuring-bind (a b c) (1 2 3)
(function a b c))
Czy istnieje lepszy sposób?
Zauważ, że to działa tylko, gdy tylko argumenty funkcji są zawarte w wykazie. W przeciwnym razie potrzebne jest 'destructuring-bind', i dopasowuje zdolność Pythona do zrobienia' function (* args, another_arg) '. – Mark