u3: rewrites +weld jet using u3i_defcons()
*/
#include "all.h"
-
-/* functions
-*/
u3_noun
- u3qb_weld(u3_noun a,
- u3_noun b)
+u3qb_weld(u3_noun a, u3_noun b)
+{
+ u3_noun pro;
+ u3_noun* lit = &pro;
+
{
- u3_noun c = u3qb_flop(a);
- u3_noun d = c;
+ u3_noun* hed;
+ u3_noun* tel;
+ u3_noun i, t = a;
- u3k(b);
+ while ( u3_nul != t ) {
+ u3x_cell(t, &i, &t);
- while ( u3_nul != c ) {
- b = u3nc(u3k(u3h(c)), b);
- c = u3t(c);
+ *lit = u3i_defcons(&hed, &tel);
+ *hed = u3k(i);
+ lit = tel;
+ }
}
- u3z(d);
+ *lit = u3k(b);
- return b;
+ return pro;
}
+
u3_noun
u3wb_weld(u3_noun cor)
{
u3_noun a, b;
-
- if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) {
- return u3m_bail(c3__exit);
- } else {
+ u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0);
return u3qb_weld(a, b);
}
- }
+
u3_noun
- u3kb_weld(u3_noun a,
- u3_noun b)
+u3kb_weld(u3_noun a, u3_noun b)
{
u3_noun c = u3qb_weld(a, b);
-
u3z(a); u3z(b);
return c;
}
-
