common-lisp — как обернуть встроенную функцию с переменными аргументами?

#lisp #common-lisp #variadic-functions

#lisp #common-lisp #variadic-функции

Вопрос:

Я бы хотел обернуть встроенную:

      (concatenate ‘string <arg1> <arg2> .. <argn>)
  

Чтобы быть чем-то вроде этого:

      (strcat <arg1> <arg2> ... <argn>)
  

Проблема в том, как выполнить переменные аргументы в common-lisp? Я вижу два возможных пути:

  1. примите список в качестве параметра, затем splat it / apply it [ни один из которых я тоже не знаю]
  2. специальный синтаксис var-args в common-lisp? ex: ...

Спасибо

Ответ №1:

 (defun strcat (amp;rest args)
  (apply #'concatenate 'string args))