Объединение пусто тогда и только тогда, когда оба набора пусты.Поэтому, если вы вычисляете объединение только для этого, вы тратите впустую вычислительное время.
Если вместо этого вам дано объединение или вы все равно должны его использовать, длина - самый естественный метод.
Однако, поскольку вы хотите знать только, если он пуст, вместо length ls == 0
вы можете использовать take 1 ls == []
.Таким образом, Haskell - так как это ленивый язык - должен вычислять только первый элемент, а не весь список, поскольку length
потребует
Edit
Как указал @joseph,есть функция Prelude, чтобы проверить, является ли список нулевым: null :: [a] -> Bool