Esta clase de funciones están escritas en el propio LE-LISP. Su característica fundamental es que los argumentos son siempre evaluados. Se definen generalmente utilizando la función defun. El proceso de evaluación se realiza de la siguiente manera:
Como caso particular, en aquellas funciones expr cuya lista de parámetros contine únicamente &nobind, no se asigna ninguna variable. La función arg sin argumentos se utiliza en el cuerpo de dichas funciones para conocer el número de argumentos pasados en cada llamada, mientras que (arg n) devuelve el argumento de la posición n, considerando que el primero ocupa la posición 0. Esta clase particular de funciones se utiliza para crear funciones con un número variable de argumentos.
La compilación de funciones de tipo expr da lugar a funciones LLM3 que reciben el nombre de subr, de las cuales existen entre 400 y 500 en el sistema.