Stream "at" (@) Operators(work in progress)

KEY:
D: Dyadic; M: Monadic; N: Niladic

Commentary     Op Code Result
Commentary M ?`@



?`@<<-
Current cursor position;
(what index at?)

Previous cursor position
(what index at before?)
'now*is*the*time'=>s;
1..(s#)%10 %* ~ $;s:hex $;
'<1> P[' (s ?`@) '];PP['(s ?`@<<-) ']' $;
'<2> '(s ->>| '*') $;
'<3> P['(s ?`@)'];PP['(s ?`@<<-) ']' $;
'<4> '(s ->>| '*') $;
'<5> P['(s ?`@)'];PP['(s ?`@<<-) ']' $;
'<4> '(s ->>| '*') $;
'<5> P['(s ?`@)'];PP['(s ?`@<<-) ']' $;
'<6> '(s <<-| '*') $;
'<7> P['(s ?`@)'];PP['(s ?`@<<-) ']' $;
'<8> '(s <<-| '*') $;
'<9> P['(s ?`@)'];PP['(s ?`@<<-) ']' $;

123456789012345
now*is*the*time
667267276627666
EF7A93A485A49D5
<1> P[0]; PP[0]
<2> now*
<3> P[5]; PP[0]
<4> is*
<5> P[8]; PP[5]
<4> the*
<5> P[12]; PP[8]
<6> *
<7> P[6]; PP[7]
<8> *is
<9> P[3]; PP[6]
Commentary M ?@<-

?@->
At Begin or End of stream? 'now*is*the*time'=>s;
'<1> B['(s ?@<-)'] ;E['(s ?@->)']'$;
'<2> ' (s ->>| '*' ) $;
'<3> B[' (s ?@<-)']; E['(s ?@->)']'$;
'<4> ' (s @->) $;
'<5> B[' (s ?@<-) ']; E['(s ?@->)']'$;
<1> B[1]; E[0]
<2> now*
<3> B[0]; E[0]
<4> 5
<5> B[0]; E[1]
Commentary M ?>< Last Streaming Direction? 'now*is*the*time'=>s;
'<1> D['(s ?><)']' $;
'<2> '(s ->>| '*') $;
'<3> D['(s ?><)']' $;
'<4> '(s <<-| '*' ) $;
'<5> D[' (s ?>< ) ']' $;
'<6> '(s <<-| '*' ) $;
'<7> D[' (s ?>< ) ']' $;
<1> D[X]
<2> now*
<3> D[R]
<4>
<5> D[L]
<6>
<7> D[X]
Commentary P .props Stream properties 'now*is*the*time'=>s;
1..(s#)%10 %* ~ $;s:hex $;
('<1> ') (s.props) $;
('<2> ') (s ->>|'*' ) $;
('<3> ') (s.props) $;
('<4> ') (s ->>|'*' ) $;
('<5> ') (s.props) $;
('<6> ') (s ->>|'*' ) $;
('<7> ') (s.props) $;
('<8> ') (s <<-|'*' ) $;
('<9> ') (s.props) $;
('<10> ') (s <<-|'*' ) $;
('<11> ') (s.props) $;
123456789012345
now*is*the*time
667267276627666
EF7A93A485A49D5
<1> D[X]; PPos[0]; B[Y]; E[N]; Pos[0]; NE[15]
<2> now*
<3> D[R]; PPos[0]; B[N]; E[N]; Pos[5]; NE[15]
<4> is*
<5> D[R]; PPos[5]; B[N]; E[N]; Pos[8]; NE[15]
<6> the*
<7> D[R]; PPos[8]; B[N]; E[N]; Pos[12]; NE[15]
<8> *
<9> D[L]; PPos[7]; B[N]; E[N]; Pos[6]; NE[15]
<10> *is
<11> D[L]; PPos[6]; B[N]; E[N]; Pos[3]; NE[15]
Commentary M @<- At start of stream 'now*and*then'=>str $;
1..(str#)%10 %* ~ $;
'<1> '( str @<- 4 ) $; str.props $;
'<2> '( str @<- ) $; str.props $;
now and then
123456789012
<1> 0
D[X]; PPos[0]; B[N]; E[N]; Pos[4]; NE[12]
<2> 4
D[L]; PPos[0]; B[Y]; E[N]; Pos[0]; NE[12]
Commentary D @<- n At start of stream + n See previous example See previous example
Commentary M @-> At end of stream 'now*and*then'=>str $;
1..(str#)%10 %* ~ $;
'<1> '( str @-> 4 )' '(str ?`@) $;
'<2> '( str @-> )' '(str ?`@) $;
now and then
123456789012
<1> 0 9
<2> 9 13
Commentary D @-> n At end of stream - n See previous example See previous example
Commentary M @<<- At previous Line 13 10#asc =>n;
'now',n,'and',n,'then'=>str;
1..(str#)%10 %* ~ $; str :hex $;
'<1> '(str @-> )' '(str ?`@ ) $;
'<2> '(str @<<- 2 )' '(str ?`@ ) $;
'<3> '(str @<<- )' '(str ?`@ )$;
'<4> '(str @<<- )' '(str ?`@ )$;
'<5> ' $;(str ->> :hex ) $;(str ?`@ )$;
'<6> '(str @<<- )' '(str ?`@ )$;
12345678901234
now..and..then
66700666007666
EF7DA1E4DA485E
<1> 0 15
<2> 15 13
<3> 13 9
<4> 9 4
<5>
..and
00666
DA1E4
9
<6> 9 4
Commentary D @<<- n At previous n chars See previous example See previous example
Commentary M @->> At next line 13 10#asc =>n;
'now',n,'and',n,'then'=>str;
1..(str#)%10 %* ~ $; str :hex $;
'<1> '(str @<- )' '(str ?`@ ) $;
'<2> '(str @->> 2 )' '(str ?`@ ) $;
'<3> '(str @->> )' '(str ?`@ )$;
'<4> '(str @->> )' '(str ?`@ )$;
'<5> '(str @->> )' '(str ?`@ )$;
12345678901234
now..and..then
66700666007666
EF7DA1E4DA485E
<1> 0 0
<2> 0 2
<3> 2 4
<4> 4 9
<5> 9 15
Commentary D @->> n At next n chars See previous example See previous example
Commentary D @<<-| At previous any 'now.and,then;'=>str $;
1..(str#)%10 %* ~ $;
'<1> '( str @-> )' '(str ?`@ ) $;
'<2> '( str @<<-| '.,;' )' '(str ?`@ ) $;
'<3> '( str @<<-| '.,;' )' '(str ?`@ ) $;
'<4> '(str @<<-& 'ow')' '(str ?`@ ) $;
'<5> '(str @<<-| 'x')' '(str ?`@ ) $;
now.and,then;
1234567890123
<1> 0 14
<2> 14 13
<3> 13 8
<4> 3 3
<5> 3 0
Commentary D @<<-& At previous all See previous example See previous example
Commentary D @->>| At next any 'now.and,then;'=>str $;
1..(str#)%10 %* ~ $;
'<1> '( str @<- )' '(str ?`@ ) $;
'<2> '( str @->>| '.,' )' '(str ?`@ ) $;
'<3> '(str @->>& 'nd')' '(str ?`@ ) $;
'<4> '(str @== @->>& 'TH')' '(str ?`@ ) $;
now.and,then;
1234567890123
<1> 0 0
<2> 0 4
<3> 4 6
<4> 6 14
Commentary D @->>& At next all See previous example See previous example