В моем тестовом экзамене вопрос был, что делает этот метод.Haskell: что делает этот метод
dos a = ([x | x <- [2..div a 2], mod a x == 0] == [])
Я новичок в Haskell, но, насколько я могу сказать, он проверяет, если результат dos a = ([x | x <- [2..div a 2], mod a x == 0])
является пустым списком. Также x - все числа a
, деленные на 2, у которых есть% number == 0. Таким образом, это все четные числа? Кажется, он проверяет, может ли число делиться через 2, если да -> false, иначе иначе. Может ли кто-нибудь объяснить мне семантику в деталях?
Лучший способ узнать это - разбить выражение на несколько функций и оценить их в REPL. '[2..div a 2]' возвращает список целых чисел от 2 до a/2. – Simon