NB. J standard definitions for CS1301 NB. Formerly read into the z locale NB. Set output parms so we see everything. (9!:37) 0 1000000 0 1000000 NB. Explicit definition noun =: 0 adverb =: 1 conj =: 2 verb =: 3 monad =: 3 dyad =: 4 locale =: 6 tacit =: 13 def =: : NB. Miscelaneous NB. drop_last_space d_l_s =: ] }.~ [: - ' ' = _1 {. ] scrpt =: 0 !: lecture =: 11 scrpt & < & d_l_s file =: 1 !: read =: 1 file & < & d_l_s write =: 2 file (< & d_l_s) write_append =: 3 file (< & d_l_s) write_data =: dyad def 0 x. =. , (format x.) ,. 10 { a. minus =. (x. = '_') # i. # x. ('-' minus } x.) write y. ) write_append_data =: dyad def 0 x. =. , (format x.) ,. 10 { a. minus =. (x. = '_') # i. # x. ('-' minus } x.) write_append y. ) plot =: monad def 0 nl =. 10 { a. y. write_data 'plot.out' ('set autoscale y',nl)write'plot.cmd' NB.('set yrange[',(": <./ 1{"1 y.),':',(": >./ 1{"1 y.),']',nl)write_append'plot.cmd' NB.('set xrange[',(": <./ 0{"1 y.),':',(": >./ 0{"1 y.),']',nl)write_append'plot.cmd' ('plot "plot.out" with lines', nl )write_append'plot.cmd' ('pause -1' , nl) write_append 'plot.cmd' system'gnuplot plot.cmd' ) help =: monad def 'jhelp ''firefox''' time =: 6 !: 2 space =: 7 !: 2 size =: 3 : '7!:5 <''y.''' format =: ": NB. names =: > @ (4 !: 1) sys =: 2 !: system =: 0 sys & d_l_s spawn =: 1 sys & d_l_s ed =: vi =: spawn &('vi '&,) gedit =: spawn &('gedit '&,) emacs =: spawn &('emacs '&,) xemacs =: spawn &('xemacs '&,) gxedit =: spawn &('gxedit '&,) gnuplot =: spawn &('gnuplot '&,) gnp =: spawn &('gnp '&,) gvim =: spawn &('gvim '&,) representation =: 5 !: 1 & < linear =: 5 tree =: 4 boxed =: 2 atomic =: 1 query_display =: 9!:2 set_display =: 9!:3 box_chars =: (9!:7) & (1 0 2 3 4 5 & {) & (9!:6) get_box_chars =: 9!:6 set_box_chars =: 9!:7 set_box_chars '+++++++++|-' roll =: ? do =: ". log_session =: (0 !: 1 & 1) @ < print_precision =: 9 !: 10 set_print_precision =: 9 !: 11 over =: ({.;}.)@":@, by =: ' '&;@,.@[,.] table =: adverb def '[ by ] over x./' atop =: @ bond =: & rank =: " numberp =: monad def '+/1 4 8 16 64 e. 3 !: 0 y.' charp =: monad def '2 = 3!:0 y.' boxp =: monad def '32 = 3!:0 y.' transpose =: |: rotate =: |. cat =: system &('cat '&,) cut =: ;. box_cut =: < cut NB. Tracing display =: echo trace =: monad def 0 display y. : display (format x.),format y. y. ) entering =: 'Entering, input = '&trace leaving =: 'Leaving, result = '&trace error =: % atop display atop format erase =: 4 !:55 @ < NB. Introduction tally =: # copy =: # shape =: $ reshape =: $ first =: {. rest =: }. append =: , integer =: i. box =: < open =: > link =: ; NB. Computer Organization rep =: #: base =: #. NB. Computer Circuits from =: { and =: *. or =: +. amend =: } take =: {. drop =: }. insert =: / NB. Data Structures reverse =: |. not =: -. last =: _1 & from drop_last =: _1 & drop match =: -: head =: open atop first nullp =: (0 bond =) atop tally NB. Object Programming make_z_ =: 0 !: 0 @ < for_effect_only =: monad def '''unspecified''' invalid_method_name_indicator =: 'unknown' root_object =: monad define ('method' ; 'value') =. 2 take y. if. method -: 'type' do. 'root object' else. 'In root object: ',method,': Invalid method name.' end. ) NB. Programming Methodology to_char =: 3 !: 1 to_internal =: 3 !: 2 write_list =: dyad def '(to_char x.) write y.' write_append_list =. dyad def '(to_char x.) write_append y.' read_list =: to_internal @ read NB. Software Engineering gcd =: +. NB. Language Translation word =: ;: NB. Computability residue =: | NB. Artificial Intelligence stitch =: ,. not_equal =: ~: index_of =: i. ravel =: ,