Then I hand-translate it to C, usually without bugs since every function has a well-defined specification.
The key issue is "impedence mismatch" (eg, hooking a soda straw to a firehose).
C is "close to the machine" and "far from your problem".
Lisp is the only language I know that is close to the machine and close to the problem. So, for example, (integrate (car x)) uses a machine pointer (car) on a data structure and then calls a "problem specific routine" all the same statement.
Think in Lisp, code in C.