You can evaluate a Poke statement by typing it at the REPL’s prompt. Only a single statement, including expression statements (see Expression Statements) and compound statements (see Compound Statements), can be evaluated this way. It needs not be terminated by a semicolon.
When an expression is evaluated, the result of the evaluation is printed back to you. For example:
(poke) 23 23 (poke) [1,2,3] [1,2,3] (poke) Packet @ 0#B Packet {i=1179403647,j=65794L}
When a statement other than an expression statement is executed in the REPL no result is printed, but of course the statement can print on its own:
(poke) fun do_foo = void: {} (poke) do_foo (poke) for (i in [1,2,3]) printf "elem %i32d\n", i; elem 1 elem 2 elem 3
If there is an error compiling the line, you are notified with a nice error message, showing the location of the error. For example:
(poke) [1,2,3 + "foo"] <stdin>:1:6: error: invalid operands in expression [1,2,3 + "foo"]; ^~~~~~~~~