generated at
(1.3.1.1) Lazy Evaluation Study Method
The lazy evaluation is a technical term. It is related to execution order of programs. Suppose you have the following source code.

code
task3(task1(), task2())

In most programming languages, this code is executed in the order: "execute task 1 to get the result, execute task 2 to get the result, execute task 3 and get the result". On the other hand, in the lazy evaluation language, this code is executed in a different order: "When the result of task 3 becomes necessary, start execution of task 3. If the execution of task 3 needs the result of task 1, execute task 1 and get the result. If the execution of task 3 needs the result of task 1, execute task 1 and get the result, execute task 2 and get the result."

The lazy evaluation language does not run codes unless it is required. It executes the code in the order of necessity rather than the order of appearance: "do task 1 and then do task 2." (*15)

Doing the same strategy for learning is the lazy evaluation study method. Instead of reading a book from the first page, you divide the purpose and read it skipping from the necessary pages for the purpose. By the information gathering, you get fragmentary knowledge. The fragment will connect one day as if to build up a jigsaw puzzle. (*16)

---

*14: A software engineer Hitoshi Amano proposed the lazy evaluation study method in 2008.
*15: The lazy evaluation language is said to be efficient because it calculates what is needed only. On the other hand, it makes a lot of thunks (something like a note that "Calculate it if necessary"), so it consumes much memory.
*16: The idea of ​​connecting afterward is also related to Connecting Dots introduced in Chapter 7, (7.1.3.3) we can only connect dots looking backwards.

en