APL-eusis: Difference between revisions

Jump to navigation Jump to search
196 bytes added ,  20:40, 25 February 2020
(Created page with "APL-eusis is a game that allows participants to hone their skills in the APL programming language. It is inspired by existing games of inductive logic such as Eleusis or Zendo...")
 
Line 17: Line 17:
* If a student makes a ''solution'' move, the other students may offer correctness predictions. A student may decline to make a correctness prediction. Any student that believes that the offered solution is incorrect should be prepared to provide arguments to the function(s) that will demonstrate that the solution is incorrect (as above). A student whose correctness prediction is in fact correct is awarded three points. Each student who correctly predicted that an offered solution is incorrect must provide their arguments to demonstrate the incorrectness; if the arguments do not in fact demonstrate that the prediction was incorrect (that is, the same result is returned by the student’s function and the Master’s function), the student loses one point.
* If a student makes a ''solution'' move, the other students may offer correctness predictions. A student may decline to make a correctness prediction. Any student that believes that the offered solution is incorrect should be prepared to provide arguments to the function(s) that will demonstrate that the solution is incorrect (as above). A student whose correctness prediction is in fact correct is awarded three points. Each student who correctly predicted that an offered solution is incorrect must provide their arguments to demonstrate the incorrectness; if the arguments do not in fact demonstrate that the prediction was incorrect (that is, the same result is returned by the student’s function and the Master’s function), the student loses one point.
== Notes ==
== Notes ==
Not all primitives are easily analyzed; it may be appropriate to restrict them. Examples of such primitives are ? (Roll or Deal, relying on random selection) and ⊥ (Decode).
Not all primitives are easily analyzed; it may be appropriate to restrict them. Examples of such primitives are <source lang=apl inline>?</source> ([[Roll]] or [[Deal]], relying on random selection) and <source lang=apl inline></source> ([[Represent]]).


Functions should ideally not rely on specific values for system variables or functions (e.g., ⎕io or ⎕rl) or system-specific functions (e.g., those that are signaled by ⌶). If they do, the Master should announce the reliance when the valence is announced.
Functions should ideally not rely on specific values for system variables or functions like <source lang=apl inline>⎕IO</source> or <source lang=apl inline>⎕RL</source> ([[Index origin]], [[Random link]]) or system-specific functions like <source lang=apl inline>⌶</source> ([[I-beam]]). If they do, the Master should announce the reliance when the valence is announced.


For sufficiently advanced Masters and students, consider allowing operators to be defined, as well as functions.
For sufficiently advanced Masters and students, consider allowing operators to be defined, as well as functions.

Navigation menu