Byte-code function objects are produced by byte-compiling Lisp code (see Byte Compilation). Internally, a byte-code function object is much like a vector; however, the evaluator handles this data type specially when it appears in a function call. See Byte-Code Function Objects.
The printed representation and read syntax for a byte-code function object is like that for a vector, with an additional ‘#’ before the opening ‘[’.