Lisp обладает свойством быть homoiconic, то есть представление кода, используемого языковой реализацией (списками), также доступно и идиоматически используется программами, которые хотят представлять код в своих собственных целях.
Другое важное семейство языков функционального программирования ML основано на теории типов, что означает, что для реализации языка требуется более сложное представление кода, а также менее случайное из-за того, что вам разрешено делать, поэтому обычно внутреннее представление недоступно программам. Например, контрольные проверки для логики более высокого порядка часто реализуются на языках семейства ML, но обычно реализуют собственную систему теории типов, фактически игнорируя тот факт, что компилятор ML уже имеет его.
Есть ли исключения? Любые языки программирования, основанные на теории типов, которые отображают их представление кода для программного использования?