<commit_before>/* j/2/turn.c
**
*/
#include "all.h"

  static u3_noun
  _turn_in(u3j_site* sit_u, u3_noun a)
  {
    u3_noun b = u3_nul;

    while ( u3_nul != a ) {
      b = u3nc(u3j_gate_slam(sit_u, u3k(u3h(a))),
               b);
      a = u3t(a);
    }

    return u3kb_flop(b);
  }

/* functions
*/
  u3_noun
  u3qb_turn(u3_noun a, u3_noun b)
  {
    u3_noun  pro;
    u3j_site sit_u;

    u3j_gate_prep(&sit_u, u3k(b));
    pro = _turn_in(&sit_u, a);
    u3j_gate_lose(&sit_u);
    return pro;
  }

  u3_noun
  u3wb_turn(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 {
      return u3qb_turn(a, b);
    }
  }
<commit_msg>u3: rewrites +turn jet using u3i_defcons()<commit_after>/* j/2/turn.c
**
*/
#include "all.h"

u3_noun
u3qb_turn(u3_noun a, u3_noun b)
{
  u3_noun pro = u3_nul;

  if ( u3_nul == a ) {
    return u3_nul;
  }
  else {
    u3_noun    pro;
    u3_noun*   lit = &pro;
    u3j_site sit_u;

    u3j_gate_prep(&sit_u, u3k(b));
    {
      u3_noun* hed;
      u3_noun* tel;
      u3_noun i, t = a;

      do {
        u3x_cell(t, &i, &t);

        *lit = u3i_defcons(&hed, &tel);
        *hed = u3j_gate_slam(&sit_u, u3k(i));
        lit  = tel;
      }
      while ( u3_nul != t );
    }
    u3j_gate_lose(&sit_u);

    *lit = u3_nul;

    return pro;
  }
}

u3_noun
u3wb_turn(u3_noun cor)
{
  u3_noun a, b;
  u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0);
  return u3qb_turn(a, b);
}
{'fraction_non_alphanumeric': 0.15063039150630392, 'fraction_numerical': 0.04844061048440611, 'mean_word_length': 2.215351812366738, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1645669', 'n_tokens_mistral': 833, 'n_tokens_neox': 808, 'n_words': 137}