В Haskell, в чем разница между использованием takeWhile или «обычным» неравенством в понимании этого списка?
я пытаюсь научить меня Haskell (для хорошего блага), и одна из многих разных вещей, которые яя пытаюсь решить некоторые проблемы Project Euler, пока яЯ иду, чтобы проверить мой характер.
Выполняя некоторые задачи, основанные на Фибоначчи, я наткнулся на и начал играть с рекурсивной версией бесконечного списка последовательности Фибоначчи:
fibs = 1 : 2 : zipWith (+) fibs (tail fibs)
Для одной из задач PE мне нужно было извлечь подпоследовательность четных чисел Фибоначчи меньше, чем 4 000 000. Я решил сделать это с пониманием списка, и, играя с кодом, я наткнулся на то, что я не делаю.не совсем понимаю; Я'Я предполагаю, что этомое слабое понимание Хаскеллаленивая схема оценки, котораяСложные вещи.
Следующее понимание работает просто отлично:
[x | x