При написании функций в абстрактной нотации допустимо использовать так называемую охрану, т.е. ограничения на значения переменных образца. Например, при использовании охраны функция Length будет выглядеть примерно следующим образом:
Length (L) = 0 when L == []
Length (L) = 1 + Length (tail (L)) otherwise
В рассмотренном коде слова when (когда) и otherwise (в противном случае) являются зарезервированными словами языка. Однако использование этих слов не является необходимым условием для организации охраны. Охрану можно организовывать различными способами, в том числе и с помощью l-исчисления:
Append = l[].(lL.L)
Append = l(H:T).(lL.H : Append (T, L))