u4_tool _lily_hike(u4_plow p, u4_axis axe, u4_list vix) /* (axis tool) */ { u4_lane lan = p->lan; if ( u4_n_zero(vix) ) { return u4_kc(lan, u4_nock_frag, axe); } else { u4_list log_tool = _lily_hike_belt_root(lan, vix); u4_list belt_l = _lily_hike_belt_l(lan, vix); u4_list belt_r = _lily_hike_belt_r(lan, vix); if ( !u4_n_zero(log_tool) ) { return u4_ch(log_tool); } else { u4_tool tool_l, tool_r; tool_l = _lily_hike(p, _lily_hike_axis_l(lan, axe), belt_l); tool_r = _lily_hike(p, _lily_hike_axis_r(lan, axe), belt_r); return _lily_cons(p, tool_l, tool_r); } } }
/* _lily_hike_belt_l(): factor (pac) left. */ static u2_list _lily_hike_belt_l(u2_ray wir_r, u2_list pac) { if ( (u2_nul == pac) ) { return u2_nul; } else { u2_axis axis = u2_h(u2_h(pac)); u2_tool tool = u2_t(u2_h(pac)); u2_list belt_l = _lily_hike_belt_l(wir_r, u2_t(pac)); { if ( (_1 != axis) && (u2_yes == u2_sing(_2, j2_mbc(Pt3, cap)(wir_r, axis))) ) { u2_axis axis_tap = j2_mbc(Pt3, mas)(wir_r, axis); return u2_bc(wir_r, u2_bc(wir_r, u2_rx(wir_r, axis_tap), u2_rx(wir_r, tool)), belt_l); } else return belt_l; } } }
/* _lily_hike_belt_l(): factor (vix) left. */ static u4_log _lily_hike_belt_l(u4_lane lan, u4_list vix) { if ( u4_n_zero(vix) ) { return u4_nul; } else { u4_axis axis = u4_ch(u4_ch(vix)); u4_tool tool = u4_ct(u4_ch(vix)); u4_list belt_l = _lily_hike_belt_l(lan, u4_ct(vix)); { if ( u4_n_eq(u4_axis_2, u4_op_tip(axis)) ) { u4_axis axis_tap = u4_op_tap(lan, axis); return u4_kc(lan, u4_kc(lan, axis_tap, tool), belt_l); } else return belt_l; } } }
/* functions */ u2_noun // transfer j2_mby(Pt6, hike)(u2_wire wir_r, u2_noun axe, // retain u2_noun pac) // retain { if ( (u2_nul == pac) ) { return u2_bc(wir_r, u2_nock_0, u2_rx(wir_r, axe)); } else { u2_noun zet = _lily_hike_belt_root(wir_r, pac); if ( u2_nul != zet ) { u2_noun fol = u2_rx(wir_r, u2_h(zet)); u2_rl_lose(wir_r, zet); return fol; } else { u2_noun tum = _lily_hike_belt_l(wir_r, pac); u2_noun gam = _lily_hike_belt_r(wir_r, pac); u2_noun hax = j2_mbc(Pt3, peg)(wir_r, axe, 2); u2_noun moz = j2_mbc(Pt3, peg)(wir_r, axe, 3); u2_noun zip = j2_mby(Pt6, hike)(wir_r, hax, tum); u2_noun dof = j2_mby(Pt6, hike)(wir_r, moz, gam); u2_noun fol = j2_mby(Pt6, cons)(wir_r, zip, dof); u2_rl_lose(wir_r, tum); u2_rl_lose(wir_r, gam); u2_rl_lose(wir_r, hax); u2_rl_lose(wir_r, moz); u2_rl_lose(wir_r, zip); u2_rl_lose(wir_r, dof); return fol; } } }