RELP

REPL mode

AbstractLogic provides a REPL mode (thanks to ReplMaker.jl) for interacting with the parser. It is initiated by typing = in the julia console. Relp mode is an efficient method for rapidly evaluating problem sets as it is syntactically more concise.

The REPL can be interacted with programmatically by calling the function abstractlogic("command"; returnactive = false). Setting returnactive=true will return the most recent active LogicalCombo.

julia> abstractlogic("clear")
Clear Workspace

julia> abstractlogic("a, b, c ∈ 1:3")
a, b, c ∈ 1:3        feasible outcomes 27 ✓      :2 2 3

julia> myset = abstractlogic("a = b|c", returnactive = true)
a = b|c              feasible outcomes 15 ✓      :1 1 2

julia> showfeasible(myset)
15×3 Array{Int64,2}:
 1  1  1
 1  1  2
 ⋮      
 3  3  3

Basic REPL Interactivity

The repl by default will take any command that the parser will take and sent it to the logicalparser for evaluation. The primary difference is that logicalparser will return a LogicalCombo to user while the repl will keep it in active memory to be automatically referenced by future commands.

Example
abstractlogic> a, b, c ∈ 1:3; a = b|c

a, b, c ∈ 1:3        feasible outcomes 27 ✓      :2 3 3
a = b|c              feasible outcomes 15 ✓      :2 2 2

REPL Commands

Most commands should be entered directly in the REPL mode after the prompt and are executed with an enter at the end of the line.


?... help...

Returns documentation related to a function or command to the user. NOTE julia> help(...) returns identical information.

abstractlogic> ? >
  Operator: >

  a > b : a is greater than b

back b

Go back one command. Command next or n reverses back.


check...

Go back one command check feasibility of subsequent command

### Example
abstractlogic> a,b,c ∈ 1:3
a,b,c ∈ 1:3              feasible outcomes 27 ✓          :2 3 3

abstractlogic> a > b ; b > c

a > b                    feasible outcomes 9 ✓           :3 2 3
b > c                    feasible outcomes 1 ✓✓          :3 2 1

abstractlogic> check a == 3
Check: a == 3 ... a == 3                         feasible outcomes 1 ✓✓          :3 2 1
true, 1 out of 1 possible combinations 'true'.

clear [clear]

Empty the current variable space. Note Specifying the option [clear] in any part of a REPL command will call the clear function before processing the rest of the command.

abstractlogic> a, b, c ∈ 1:3 [clear]
Clear Workspace
a, b, c ∈ 1:3            Feasible Outcomes: 27   Perceived Outcomes: 27 ✓        :1 2 1

clearall

Empty the current as well as the history set space. Warning This cannot be undone!


dashboard dash

Toggles the dashboard printout - primarily used for debugging.


discover d

Search Main for any LogicalCombos. See Also import to bring LogicalCombo from Main and export to send LogicalCombo to Main


export

send LogicalCombo to Main See Also discover to search Main for any LogicalCombos and import to bring LogicalCombo from Main.


history h

"Show command history with # feasible."


import

bring LogicalCombo from Main See Also discover to search Main for any LogicalCombos and export to send LogicalCombo to Main


keys

List variables names.


logicset ls

Show all logical sets currently in working REPL memmory.

Exiting the REPL: julia> returnactivelogicset() returns the most recent set julia> returnlogicset() returns a vector of all sets worked on int REPL


next

Go forward one command. Only works if you have gone back first.


preserve

Save the current variable space for use with restore.


restore

Restore the last saved variable space.


search

Search for the feasibility of {{i}} match

Example
abstractlogic> a,b,c ∈ 1:3
a,b,c ∈ 1:3              feasible outcomes 27 ✓          :2 3 3

abstractlogic> a > b ; b > c

a > b                    feasible outcomes 9 ✓           :3 2 3
b > c                    feasible outcomes 1 ✓✓          :3 2 1

abstractlogic> search == 3

Checking: a == 3
Checking: b == 3
Checking: c == 3

:a is a match with 1 feasible combinations out of 1.
:b is a not match with 0 feasible combinations out of 1.
:c is a not match with 0 feasible combinations out of 1.

show s

Print a table of 10 feasible results (head and tail)


showall

Print a table of all feasible results.