Well, it'd be:
(append '("bundle" "exec") command)))
I think that there's a misunderstanding here, and I see that
command is quite a confusing name here.
You can't use
funcall here because
command is not an Emacs Lisp interactive command—i.e. what you'd execute with
M-x—in this case. It's a list of strings that constitute an executable command for the operating system. Essentially it's what you'd type into your shell to run a syntax checker, although Flycheck does not use the shell to run its commands for safety and efficiency reasons.
Right before it's about to execute such a command for a syntax checker Flycheck gives to whole command as argument to
flycheck-command-wrapper-function. The function must then return another, potentially entirely different, list which is the command that Flycheck will subsequently execute without any further checks.
To run a syntax checker through bundle we just need to return the command with
bundle exec prepended. Mind you, Flycheck doesn't use the shell so you need to pass
bundle exec as two separate list items.
I hope that this clears up things a little bit.