up_qor_sink.c (613B)
1 #include "all.h" 2 3 u3_noun 4 u3qdu_qor_sink(u3_noun a, u3_noun k, u3_atom p, u3_noun v) 5 { 6 u3_noun b = u3qdu_qor_put(a, k, p, v); 7 u3_noun pre = u3qdu_qor_bot(b); 8 9 u3z(b); 10 11 if (u3_nul == pre) { 12 return u3m_bail(c3__exit); 13 } else 14 { 15 u3_noun pro = u3k(u3t(pre)); 16 u3z(pre); 17 18 return pro; 19 } 20 } 21 22 u3_noun 23 u3wdu_qor_sink(u3_noun cor) 24 { 25 u3_noun a, k, p, v; 26 27 if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_6, &k, u3x_sam_14, &p, 28 u3x_sam_15, &v, 0)) || 29 (c3n == u3ud(p)) ) 30 { 31 return u3m_bail(c3__exit); 32 } else { 33 return u3qdu_qor_sink(a, k, p, v); 34 } 35 } 36