NB. Definitions from Introduction Chapter t1 =: 5.52 plus =: dyad define x. + y. ) NB. alternately plus =: dyad def 'x. + y.' square =: monad define y. * y. ) maximum =: dyad define if. x. > y. do. x. else. y. end. ) maximum =: monad define ('x' ; 'y') =. y. if. x > y do. x else. y end. ) l1 =: 1 2 10 _9 3 l2 =: 'Hi there' l3 =: (box i. 5) , box i.2 list_sum =: monad define if. 0 = tally y. do. 0 else. (first y.) + list_sum rest y. end. ) traced_list_sum =: monad define entering y. if. 0 = tally y. do. leaving 0 else. leaving (first y.) + traced_list_sum rest y. end. ) factorial =: monad define if. 0 = y. do. 1 else. y. * factorial y. - 1 end. ) traced_factorial =: monad define entering y. if. 0 = y. do. leaving 1 else. leaving y. * traced_factorial y. - 1 end. ) select_positive =: monad define if. 0 = tally y. do. '' else. if. 0 <: first y. do. (first y.) append select_positive rest y. else. select_positive rest y. end. end. ) traced_select_positive =: monad define entering y. if. 0 = tally y. do. leaving '' else. if. 0 <: first y. do. leaving (first y.) append traced_select_positive rest y. else. leaving traced_select_positive rest y. end. end. )