Procedure?

(procedure? argument) -> boolean

Returns true if the given argument is a <procedure>, otherwise false.

The example is taken from the series of examples used in compile, optimize, and assemble.

>> (define testprog (read-lisp-file "lib/mosc.ms"))
:: ((import "lib/compile") (import "lib/optimize") (define (...) (...) (...) (...)
(...) (...)) (export mosc))
>> (procedure? testprog)
:: #f
>> (set! testprog (compile testprog))
:: ((usen 0 0) (newf) (ldg import) (arg) (ldc "lib/compile") (arg) (call) (newf)
(ldg import) (arg) (ldc "lib/optimize") (arg) (call) (clos mosc after-63)
(usen 1 6) (ldc #f) (stb 0 1) (ldc #f) (stb 0 2) (newf) (ldg string-ends-with?)
(arg) (ldb 0 0) (arg) (ldc ".ms") (arg) (call) (jf false-65) (ldb 0 0) (stb 0 1)
(newf) ...)
>> (procedure? testprog)
:: #f
>> (set! testprog (optimize testprog))
:: ((usen 0 0) (newf) (ldg import) (arg) (ldc "lib/compile") (arg) (call) (newf)
(ldg import) (arg) (ldc "lib/optimize") (arg) (call) (clos mosc after-63) (usen 1 6)
(ldc #f) (stb 0 1) (ldc #f) (stb 0 2) (newf) (ldg string-ends-with?) (arg) (ldb 0 0)
(arg) (ldc ".ms") (arg) (call) (jf false-65) (ldb 0 0) (stb 0 1) (newf) ...)
>> (procedure? testprog)
:: #f
>> (set! testprog (assemble testprog))
:: [procedure 2822400]
>> (procedure? testprog)
:: #t