### learn rules: =>

```
=> :
description:
op |ket> => sequence
op general-sequence => sequence
standard learn rule
associate a ket/superposition/sequence with an operator/ket pair
once defined, any invocation of "op|ket>" will return the associated sequence
if "op|ket>" is invoked and it hasn't been defined by some kind of learn rule, it will return the empty ket |>
if the right hand side is a general sequence, it will be compiled to a sequence before being associated with the op/ket

if the learn rule has the second form, the general sequence on the left of the learn rule symbol will be compiled to a sequence
then for each ket in that sequence we learn op ket => sequence
|_self> is then set to that ket, so you can access it if needed

examples:
-- associate a ket:
-- ie, learn Mary's age:
age |Mary> => |37>

-- associate a superposition:
-- ie, learn Sam's friends:
friends |Sam> => |Tom> + |Matt> + |Emma> + |Mary> + |Luke>

-- associate a sequence:
-- in this case, the first 8 primes
integer |sequence> => |2> . |3> . |5> . |7> . |11> . |13> . |17> . |19>

-- once the above have been defined, we can see what we have using the dump command:
sa: dump
------------------------------------------
|context> => |Global context>

age |Mary> => |37>
friends |Sam> => |Tom> + |Matt> + |Emma> + |Mary> + |Luke>
integer |sequence> => |2> . |3> . |5> . |7> . |11> . |13> . |17> . |19>
------------------------------------------

-- and we can now invoke them in the shell:
sa: age |Mary>
|37>

sa: friends |Sam>
|Tom> + |Matt> + |Emma> + |Mary> + |Luke>

sa: integer |sequence>
|2> . |3> . |5> . |7> . |11> . |13> . |17> . |19>

-- an example of the second form:
-- first, learn the days of the week, and the weekend:
list-of |weekdays> => split[" "] |Monday Tuesday Wednesday Thursday Friday>
list-of |weekend> => split[" "] |Saturday Sunday>

-- now say a shop opens 9am - 5pm on weekdays, and 11am to 4pm on weekends
-- here is a compact way to learn that:
open list-of |weekdays> => |9 am>
close list-of |weekdays> => |5 pm>
open list-of |weekend> => |11 am>
close list-of |weekend> => |4 pm>

-- now see what we know:
sa: dump
------------------------------------------
|context> => |Global context>

list-of |weekdays> => |Monday> + |Tuesday> + |Wednesday> + |Thursday> + |Friday>
list-of |weekend> => |Saturday> + |Sunday>

open |Monday> => |9 am>
close |Monday> => |5 pm>

open |Tuesday> => |9 am>
close |Tuesday> => |5 pm>

open |Wednesday> => |9 am>
close |Wednesday> => |5 pm>

open |Thursday> => |9 am>
close |Thursday> => |5 pm>

open |Friday> => |9 am>
close |Friday> => |5 pm>

open |Saturday> => |11 am>
close |Saturday> => |4 pm>

open |Sunday> => |11 am>
close |Sunday> => |4 pm>
------------------------------------------