Goal: So that I can prototype and experiment with different ideas I have rapidly.
Goal: So that I can evaluate a complete program in the same way as any source file would be interpreted.
Goal: So that I don’t have to provide unecessary and verbose details which are already implicit in the current environment I am working in.
Goal: So that I can provide more support that is tailored to my language, without having to extend my language outside of the context of a REPL.
Goal: So that I can modify expressions without having to rewrite everything.
Goal: So that I can keep the history when I quit and resume my session later.
Goal: So that I can easily reuse them in future expressions, and don’t have to assign them myself if I forgot to do that after entering it.
Goal: So that I can enter more complex language constructs than just expressions that fit on a single line.
Goal: So that I can distinguish between the different mode. So that I can have feedback from the interface of what I am doing.
Goal: So that I can edit the input efficiently.
Goal: So that I can correct my program.
Goal: So that I can correct my input and the feedback is more rapid, to support rapid prototyping.
Goal: So that I can distinguish between different syntactical elements.
Goal: So that I can quickly see additional code information, such as the type or value of a variable.
Goal: So that I don’t have to switch from the IDE to the REPL, but can use it in the same session.
Goal: So that I can change definitions inside my REPL when I change my mind.
Goal: So that I can the context in which I am typing the current input.
Goal: So that I can have more information what kind of values are in the environment.
Goal: So that I can resume my work without having to reevaluate everything.
Goal: So that I don’t have to type everything myself, and don’t have to remember exactly how to type it
Goal: So that I can use the REPL in the same way as I use the editor in the IDE as I expect it to, and without listing the entire environment.
Goal: So that I can make note documents which I can share with others and save for later.
Goal: So that I am not tied to using Eclipse because the REPL is not available somewhere else.