(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.
codetask3(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.