В Haskell, в чем разница между использованием takeWhile или «обычным» неравенством в понимании этого списка?

я пытаюсь научить меня Haskell (для хорошего блага), и одна из многих разных вещей, которые яя пытаюсь решить некоторые проблемы Project Euler, пока яЯ иду, чтобы проверить мой характер.

Выполняя некоторые задачи, основанные на Фибоначчи, я наткнулся на и начал играть с рекурсивной версией бесконечного списка последовательности Фибоначчи:

fibs = 1 : 2 : zipWith (+) fibs (tail fibs)

Для одной из задач PE мне нужно было извлечь подпоследовательность четных чисел Фибоначчи меньше, чем 4 000 000. Я решил сделать это с пониманием списка, и, играя с кодом, я наткнулся на то, что я не делаю.не совсем понимаю; Я'Я предполагаю, что этомое слабое понимание Хаскеллаленивая схема оценки, котораяСложные вещи.

Следующее понимание работает просто отлично:

[x | x

Ответы на вопрос(1)

Ваш ответ на вопрос