Lazy evaluation is an evaluation strategy in programming languages. Lazy evaluation delays the evaluation of an expression until its value is needed. With lazy evaluation, there are some advantages. One of the advantages enables to avoid unnecessary evaluations. Another advantage enables to help programmers write clear programs. In case of linked list, programmers can divide functions into two kinds, generation of list and consume of list. In this paper, we introduce an overview of lazy evaluation and our continuous research for lazy functional programming languages.