diff --git a/jets/b/levy.c b/jets/b/levy.c index 2a58ce1c4..76d437371 100644 --- a/jets/b/levy.c +++ b/jets/b/levy.c @@ -3,12 +3,8 @@ */ #include "all.h" - -/* functions -*/ - u3_noun - u3qb_levy(u3_noun a, - u3_noun b) + static u3_noun + _levy_in(u3j_site* sit_u, u3_noun a) { if ( 0 == a ) { return c3y; @@ -18,14 +14,28 @@ if ( c3n == u3du(a) ) { return u3m_bail(c3__exit); } - else switch ( (loz = u3n_slam_on(u3k(b), u3k(u3h(a)))) ) { - case c3y: return u3qb_levy(u3t(a), b); + else switch ( (loz = u3j_gate_slam(sit_u, u3k(u3h(a)))) ) { + case c3y: return _levy_in(sit_u, u3t(a)); case c3n: return c3n; default: u3z(loz); return u3m_bail(c3__exit); } } } + +/* functions +*/ + u3_noun + u3qb_levy(u3_noun a, + u3_noun b) + { + u3_noun pro; + u3j_site sit_u; + u3j_gate_prep(&sit_u, b); + pro = _levy_in(&sit_u, a); + u3j_gate_lose(&sit_u); + return pro; + } u3_noun u3wb_levy(u3_noun cor) {