To answer this, let’s flip the REPL around and cast it from the perspective of the human user. The user has a counterpart to the computer’s read-eval-print-loop: a “write-eval-think-loop” (WETL). The user first writes a block of code to import data, train a model, create a visualization, implement an algorithm, etc. (which the computer then reads). The user then asks the computer to evaluate that block of code (which the computer does). And then, after the computer displays the result, the user looks at that result and thinks about what to do next. Is this what I expected to see? How is X related to Y? Why was an exception raised? What might I predict using this dataset and what features would be useful? In short, the user is thinking with code and data.