Changeset 2382


Ignore:
Timestamp:
Feb 11, 2007, 3:13:47 AM (14 years ago)
Author:
orlov
Message:
  • New List.All and List.Any functions.
Location:
to-imperative/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • to-imperative/trunk/c++/include/refal/List.hh

    r2341 r2382  
    3232RF_DECL (Foldr1);
    3333
     34RF_DECL (All);
     35
     36RF_DECL (Any);
     37
    3438RF_DECL (Concat);
    3539
  • to-imperative/trunk/c++/lib/List/List.cc

    r2341 r2382  
    3737RF_DECL (Foldr1);
    3838
     39RF_DECL (All);
     40
     41RF_DECL (Any);
     42
    3943RF_DECL (Concat);
    4044
     
    7478  {
    7579    {
    76       if ((1 != 1))
     80      if (1 != 1)
    7781      {
    7882        goto _block1__branch1;
     
    8589      uintptr_t _v_len1 = _v_deref__arg1.get_len ();
    8690      uintptr_t _v_len2 = 0;
    87       if ((_v_len1 < _v_len2))
     91      if (_v_len1 < _v_len2)
     92      {
     93        goto _block1__branch1;
     94      }
     95      if (0 != 0)
    8896      {
    8997        goto _block1__branch1;
     
    119127  {
    120128    {
    121       if ((_ge_list1__0.get_len () != 0))
     129      if (_ge_list1__0.get_len () != 0)
    122130      {
    123131        goto _iter1;
     
    129137    uintptr_t _v_len1 = _ge_list2__0.get_len ();
    130138    uintptr_t _v_len2 = 1;
    131     if ((_v_len1 < _v_len2))
     139    if (_v_len1 < _v_len2)
     140    {
     141      RF_FUNC_ERROR (unexpected_fail);
     142    }
     143    if (0 != 0)
    132144    {
    133145      RF_FUNC_ERROR (unexpected_fail);
     
    136148    uintptr_t _v_len3 = _ge_list1__0.get_len ();
    137149    uintptr_t _v_len4 = 1;
    138     if ((_v_len3 < _v_len4))
     150    if (_v_len3 < _v_len4)
     151    {
     152      RF_FUNC_ERROR (unexpected_fail);
     153    }
     154    if (0 != 0)
    139155    {
    140156      RF_FUNC_ERROR (unexpected_fail);
     
    158174  {
    159175    {
    160       if ((_ge_list__0.get_len () != 0))
     176      if (_ge_list__0.get_len () != 0)
    161177      {
    162178        goto _iter1;
     
    168184    uintptr_t _v_len1 = _ge_list__0.get_len ();
    169185    uintptr_t _v_len2 = 1;
    170     if ((_v_len1 < _v_len2))
     186    if (_v_len1 < _v_len2)
     187    {
     188      RF_FUNC_ERROR (unexpected_fail);
     189    }
     190    if (0 != 0)
    171191    {
    172192      RF_FUNC_ERROR (unexpected_fail);
     
    192212  {
    193213    {
    194       if ((_ge_list__0.get_len () != 0))
     214      if (_ge_list__0.get_len () != 0)
    195215      {
    196216        goto _iter1;
     
    202222    uintptr_t _v_len1 = _ge_list__0.get_len ();
    203223    uintptr_t _v_len2 = 1;
    204     if ((_v_len1 < _v_len2))
     224    if (_v_len1 < _v_len2)
     225    {
     226      RF_FUNC_ERROR (unexpected_fail);
     227    }
     228    if (0 != 0)
    205229    {
    206230      RF_FUNC_ERROR (unexpected_fail);
     
    214238    uintptr_t _v_len3 = _v_deref__list__0.get_len ();
    215239    uintptr_t _v_len4 = 0;
    216     if ((_v_len3 < _v_len4))
     240    if (_v_len3 < _v_len4)
     241    {
     242      RF_FUNC_ERROR (unexpected_fail);
     243    }
     244    if (0 != 0)
    217245    {
    218246      RF_FUNC_ERROR (unexpected_fail);
     
    238266  {
    239267    {
    240       if ((_ge_list__0.get_len () != 0))
     268      if (_ge_list__0.get_len () != 0)
    241269      {
    242270        goto _iter1;
     
    248276    uintptr_t _v_len1 = _ge_list__0.get_len ();
    249277    uintptr_t _v_len2 = 1;
    250     if ((_v_len1 < _v_len2))
     278    if (_v_len1 < _v_len2)
     279    {
     280      RF_FUNC_ERROR (unexpected_fail);
     281    }
     282    if (0 != 0)
    251283    {
    252284      RF_FUNC_ERROR (unexpected_fail);
     
    264296        uintptr_t _v_len3 = _v_Apply1.get_len ();
    265297        uintptr_t _v_len4 = 0;
    266         if ((_v_len3 < _v_len4))
     298        if (_v_len3 < _v_len4)
     299        {
     300          goto _block2__branch1;
     301        }
     302        if (0 != 0)
    267303        {
    268304          goto _block2__branch1;
     
    289325  {
    290326    {
    291       if ((_ge_list__0.get_len () != 0))
     327      if (_ge_list__0.get_len () != 0)
    292328      {
    293329        goto _iter1;
     
    300336    uintptr_t _v_len1 = _ge_list__0.get_len ();
    301337    uintptr_t _v_len2 = 1;
    302     if ((_v_len1 < _v_len2))
     338    if (_v_len1 < _v_len2)
     339    {
     340      RF_FUNC_ERROR (unexpected_fail);
     341    }
     342    if (0 != 0)
    303343    {
    304344      RF_FUNC_ERROR (unexpected_fail);
     
    316356        uintptr_t _v_len3 = _v_Apply1.get_len ();
    317357        uintptr_t _v_len4 = 0;
    318         if ((_v_len3 < _v_len4))
     358        if (_v_len3 < _v_len4)
     359        {
     360          goto _block2__branch1;
     361        }
     362        if (0 != 0)
    319363        {
    320364          goto _block2__branch1;
     
    336380
    337381RF_FUNC (Elem_q_, (RF_ARG _ve_list, _vt_item;;), RF_VOID)
    338   if ((_ve_list.get_len () < 1))
     382  if (_ve_list.get_len () < 1)
    339383  {
    340384    RF_RETFAIL;
     
    350394      uintptr_t _v_len1 = _v_lsplit__list.get_len ();
    351395      uintptr_t _v_len2 = 1;
    352       if ((_v_len1 < _v_len2))
     396      if (_v_len1 < _v_len2)
    353397      {
    354398        RF_RETFAIL;
     399      }
     400      if (0 != 0)
     401      {
     402        goto _continue1;
    355403      }
    356404      uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_68_m_22 = (_v_len1 - _v_len2);
     
    373421  {
    374422    {
    375       if ((_ge_list__0.get_len () != 0))
     423      if (_ge_list__0.get_len () != 0)
    376424      {
    377425        goto _iter1;
     
    383431    uintptr_t _v_len1 = _ge_list__0.get_len ();
    384432    uintptr_t _v_len2 = 1;
    385     if ((_v_len1 < _v_len2))
     433    if (_v_len1 < _v_len2)
     434    {
     435      RF_FUNC_ERROR (unexpected_fail);
     436    }
     437    if (0 != 0)
    386438    {
    387439      RF_FUNC_ERROR (unexpected_fail);
     
    406458      uintptr_t _v_len1 = _ve_list.get_len ();
    407459      uintptr_t _v_len2 = 1;
    408       if ((_v_len1 < _v_len2))
     460      if (_v_len1 < _v_len2)
     461      {
     462        goto _block1__branch1;
     463      }
     464      if (0 != 0)
    409465      {
    410466        goto _block1__branch1;
     
    422478RF_END
    423479
     480RF_FUNC (All, (RF_ARG _vs_Fname, _ve_Fargs, _ve_list;;), RF_VOID)
     481  Expr _ge_list__0 (_ve_list);
     482  for ( ; ; )
     483  {
     484    {
     485      if (_ge_list__0.get_len () != 0)
     486      {
     487        goto _iter1;
     488      }
     489      goto _exit__iter1;
     490    }
     491  _iter1: {}
     492    uintptr_t _v_len1 = _ge_list__0.get_len ();
     493    uintptr_t _v_len2 = 1;
     494    if (_v_len1 < _v_len2)
     495    {
     496      RF_FUNC_ERROR (unexpected_fail);
     497    }
     498    if (0 != 0)
     499    {
     500      RF_FUNC_ERROR (unexpected_fail);
     501    }
     502    uintptr_t _v_len__rest = (_v_len1 - _v_len2);
     503    Expr _vt_item (_ge_list__0, 0, 1);
     504    Expr _ve_rest (_ge_list__0, (0 + 1), _v_len__rest);
     505    Expr _v_Apply1;
     506    if (!RF_CALL (Apply::Apply, (_vs_Fname, (_ve_Fargs + _vt_item)), _v_Apply1))
     507    {
     508      RF_RETFAIL;
     509    }
     510    uintptr_t _v_len3 = _v_Apply1.get_len ();
     511    uintptr_t _v_len4 = 0;
     512    if (_v_len3 < _v_len4)
     513    {
     514      RF_RETFAIL;
     515    }
     516    if (0 != 0)
     517    {
     518      RF_RETFAIL;
     519    }
     520    uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_87_m_41 = (_v_len3 - _v_len4);
     521    Expr _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_87_m_41 (_v_Apply1, 0, _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_87_m_41);
     522    _ge_list__0 = _ve_rest;
     523  }
     524_exit__iter1: {}
     525RF_END
     526
     527RF_FUNC (Any, (RF_ARG _vs_Fname, _ve_Fargs, _ve_list;;), RF_VOID)
     528  {
     529    Expr _ge_list__2 (_ve_list);
     530    for ( ; ; )
     531    {
     532      {
     533        if (_ge_list__2.get_len () != 0)
     534        {
     535          goto _iter1;
     536        }
     537        goto _exit__iter1;
     538      }
     539    _iter1: {}
     540      uintptr_t _v_len1 = _ge_list__2.get_len ();
     541      uintptr_t _v_len2 = 1;
     542      if (_v_len1 < _v_len2)
     543      {
     544        RF_FUNC_ERROR (unexpected_fail);
     545      }
     546      if (0 != 0)
     547      {
     548        RF_FUNC_ERROR (unexpected_fail);
     549      }
     550      uintptr_t _v_len__rest = (_v_len1 - _v_len2);
     551      Expr _vt_item (_ge_list__2, 0, 1);
     552      Expr _ve_rest (_ge_list__2, (0 + 1), _v_len__rest);
     553      {
     554        Expr _v_Apply1;
     555        if (!RF_CALL (Apply::Apply, (_vs_Fname, (_ve_Fargs + _vt_item)), _v_Apply1))
     556        {
     557          goto _negation2;
     558        }
     559        uintptr_t _v_len3 = _v_Apply1.get_len ();
     560        uintptr_t _v_len4 = 0;
     561        if (_v_len3 < _v_len4)
     562        {
     563          goto _negation2;
     564        }
     565        if (0 != 0)
     566        {
     567          goto _negation2;
     568        }
     569        uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_95_m_46 = (_v_len3 - _v_len4);
     570        Expr _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_95_m_46 (_v_Apply1, 0, _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_95_m_46);
     571        goto _negation1;
     572      }
     573    _negation2: {}
     574      _ge_list__2 = _ve_rest;
     575    }
     576  _exit__iter1: {}
     577    RF_RETFAIL;
     578  }
     579_negation1: {}
     580RF_END
     581
    424582RF_FUNC (Concat, (RF_ARG _ve_lists;;), (RF_RES _v_res1;;))
    425583  if (!RF_CALL (Map, (_c_0, empty, _ve_lists), _v_res1))
     
    441599      uintptr_t _v_len1 = _ge_arg1.get_len ();
    442600      uintptr_t _v_len2 = 1;
    443       if ((_v_len1 < _v_len2))
     601      if (_v_len1 < _v_len2)
     602      {
     603        goto _block1__branch1;
     604      }
     605      if (0 != 0)
    444606      {
    445607        goto _block1__branch1;
     
    454616    }
    455617  _block1__branch1: {}
    456     if ((_ge_arg1.get_len () != 0))
     618    if (_ge_arg1.get_len () != 0)
    457619    {
    458620      RF_FUNC_ERROR (unexpected_fail);
     
    466628  {
    467629    {
    468       if (((_ge_arg2.get_len () + 1) != 1))
     630      if ((_ge_arg2.get_len () + 1) != 1)
    469631      {
    470632        goto _block1__branch1;
     
    478640      uintptr_t _v_len1 = _v_deref__compose1.get_len ();
    479641      uintptr_t _v_len2 = 0;
    480       if ((_v_len1 < _v_len2))
     642      if (_v_len1 < _v_len2)
     643      {
     644        goto _block1__branch1;
     645      }
     646      if (0 != 0)
    481647      {
    482648        goto _block1__branch1;
     
    489655  _block1__branch1: {}
    490656    {
    491       if (((_ge_arg2.get_len () + 1) != 2))
     657      if ((_ge_arg2.get_len () + 1) != 2)
    492658      {
    493659        goto _block1__branch2;
     
    501667      uintptr_t _v_len3 = _v_deref__compose2.get_len ();
    502668      uintptr_t _v_len4 = 0;
    503       if ((_v_len3 < _v_len4))
     669      if (_v_len3 < _v_len4)
     670      {
     671        goto _block1__branch2;
     672      }
     673      if (0 != 0)
    504674      {
    505675        goto _block1__branch2;
     
    514684    uintptr_t _v_len5 = (_ge_arg2.get_len () + 1);
    515685    uintptr_t _v_len6 = 2;
    516     if ((_v_len5 < _v_len6))
     686    if (_v_len5 < _v_len6)
     687    {
     688      RF_FUNC_ERROR (unexpected_fail);
     689    }
     690    if (0 != 0)
    517691    {
    518692      RF_FUNC_ERROR (unexpected_fail);
     
    527701    uintptr_t _v_len7 = _v_deref__compose3.get_len ();
    528702    uintptr_t _v_len8 = 0;
    529     if ((_v_len7 < _v_len8))
     703    if (_v_len7 < _v_len8)
     704    {
     705      RF_FUNC_ERROR (unexpected_fail);
     706    }
     707    if (0 != 0)
    530708    {
    531709      RF_FUNC_ERROR (unexpected_fail);
     
    539717    {
    540718      {
    541         if ((_ve_list.get_len () != 1))
     719        if (_ve_list.get_len () != 1)
    542720        {
    543721          goto _iter1;
     
    550728      uintptr_t _v_len9 = _ve_list.get_len ();
    551729      uintptr_t _v_len10 = 1;
    552       if ((_v_len9 < _v_len10))
     730      if (_v_len9 < _v_len10)
     731      {
     732        RF_FUNC_ERROR (unexpected_fail);
     733      }
     734      if (0 != 0)
    553735      {
    554736        RF_FUNC_ERROR (unexpected_fail);
     
    571753  {
    572754    {
    573       if ((_ge_list__0.get_len () != 0))
     755      if (_ge_list__0.get_len () != 0)
    574756      {
    575757        goto _iter1;
     
    581763    {
    582764      {
    583         if ((_ge_list__0.get_len () < _ve_sep.get_len ()))
     765        if (_ge_list__0.get_len () < _ve_sep.get_len ())
    584766        {
    585767          goto _block1__branch1;
     
    595777            uintptr_t _v_len1 = _v_lsplit__list__0.get_len ();
    596778            uintptr_t _v_len2 = _ve_sep.get_len ();
    597             if ((_v_len1 < _v_len2))
     779            if (_v_len1 < _v_len2)
    598780            {
    599781              goto _block1__branch1;
     782            }
     783            if (0 != 0)
     784            {
     785              goto _continue1;
    600786            }
    601787            uintptr_t _v_len__2 = (_v_len1 - _v_len2);
     
    629815  {
    630816    {
    631       if ((_ge_expr__0.get_len () != 0))
     817      if (_ge_expr__0.get_len () != 0)
    632818      {
    633819        goto _iter1;
     
    639825    uintptr_t _v_len1 = _ge_expr__0.get_len ();
    640826    uintptr_t _v_len2 = 1;
    641     if ((_v_len1 < _v_len2))
     827    if (_v_len1 < _v_len2)
     828    {
     829      RF_FUNC_ERROR (unexpected_fail);
     830    }
     831    if (0 != 0)
    642832    {
    643833      RF_FUNC_ERROR (unexpected_fail);
     
    648838    {
    649839      {
    650         if ((_ve_selected.get_len () < 1))
     840        if (_ve_selected.get_len () < 1)
    651841        {
    652842          goto _block2__branch1;
    653843        }
    654         RF_lsplit (_ve_selected, 0, _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_116_m_21, _v_lsplit__selected);
     844        RF_lsplit (_ve_selected, 0, _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_133_m_21, _v_lsplit__selected);
    655845        for ( ; ; RF_iter(_ve_selected)++)
    656846        {
     
    662852            uintptr_t _v_len3 = _v_lsplit__selected.get_len ();
    663853            uintptr_t _v_len4 = 1;
    664             if ((_v_len3 < _v_len4))
     854            if (_v_len3 < _v_len4)
    665855            {
    666856              goto _block2__branch1;
    667857            }
    668             uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_116_m_28 = (_v_len3 - _v_len4);
     858            if (0 != 0)
     859            {
     860              goto _continue1;
     861            }
     862            uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_133_m_28 = (_v_len3 - _v_len4);
    669863            if (!_vt_erm.term_eq (_v_lsplit__selected, 0))
    670864            {
    671865              goto _continue1;
    672866            }
    673             Expr _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_116_m_28 (_v_lsplit__selected, (0 + 1), _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_116_m_28);
     867            Expr _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_133_m_28 (_v_lsplit__selected, (0 + 1), _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_133_m_28);
    674868            _ge_expr__0 = _ve_rest;
    675869            goto _exit1;
     
    717911  {
    718912    {
    719       if ((_ge_list2__0.get_len () != 0))
     913      if (_ge_list2__0.get_len () != 0)
    720914      {
    721915        goto _iter1;
     
    727921    uintptr_t _v_len1 = _ge_list2__0.get_len ();
    728922    uintptr_t _v_len2 = 1;
    729     if ((_v_len1 < _v_len2))
     923    if (_v_len1 < _v_len2)
     924    {
     925      RF_FUNC_ERROR (unexpected_fail);
     926    }
     927    if (0 != 0)
    730928    {
    731929      RF_FUNC_ERROR (unexpected_fail);
     
    736934    {
    737935      {
    738         if ((_ge_list1__0.get_len () < 1))
     936        if (_ge_list1__0.get_len () < 1)
    739937        {
    740938          goto _block2__branch1;
    741939        }
    742         RF_lsplit (_ge_list1__0, 0, _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_148_m_20, _v_lsplit__list1__0);
     940        RF_lsplit (_ge_list1__0, 0, _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_165_m_20, _v_lsplit__list1__0);
    743941        for ( ; ; RF_iter(_ge_list1__0)++)
    744942        {
     
    750948            uintptr_t _v_len3 = _v_lsplit__list1__0.get_len ();
    751949            uintptr_t _v_len4 = 1;
    752             if ((_v_len3 < _v_len4))
     950            if (_v_len3 < _v_len4)
    753951            {
    754952              goto _block2__branch1;
    755953            }
    756             uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_148_m_27 = (_v_len3 - _v_len4);
     954            if (0 != 0)
     955            {
     956              goto _continue1;
     957            }
     958            uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_165_m_27 = (_v_len3 - _v_len4);
    757959            if (!_vt_erm.term_eq (_v_lsplit__list1__0, 0))
    758960            {
    759961              goto _continue1;
    760962            }
    761             Expr _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_148_m_27 (_v_lsplit__list1__0, (0 + 1), _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_148_m_27);
     963            Expr _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_165_m_27 (_v_lsplit__list1__0, (0 + 1), _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_165_m_27);
    762964            _ge_list2__0 = _ve_rest;
    763965            goto _exit1;
     
    783985  {
    784986    {
    785       if ((_ge_list1__0.get_len () != 0))
     987      if (_ge_list1__0.get_len () != 0)
    786988      {
    787989        goto _iter1;
     
    793995    uintptr_t _v_len1 = _ge_list1__0.get_len ();
    794996    uintptr_t _v_len2 = 1;
    795     if ((_v_len1 < _v_len2))
     997    if (_v_len1 < _v_len2)
     998    {
     999      RF_FUNC_ERROR (unexpected_fail);
     1000    }
     1001    if (0 != 0)
    7961002    {
    7971003      RF_FUNC_ERROR (unexpected_fail);
     
    8021008    {
    8031009      {
    804         if ((_ve_list2.get_len () < 1))
     1010        if (_ve_list2.get_len () < 1)
    8051011        {
    8061012          goto _block2__branch1;
    8071013        }
    808         RF_lsplit (_ve_list2, 0, _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_162_m_20, _v_lsplit__list2);
     1014        RF_lsplit (_ve_list2, 0, _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_179_m_20, _v_lsplit__list2);
    8091015        for ( ; ; RF_iter(_ve_list2)++)
    8101016        {
     
    8161022            uintptr_t _v_len3 = _v_lsplit__list2.get_len ();
    8171023            uintptr_t _v_len4 = 1;
    818             if ((_v_len3 < _v_len4))
     1024            if (_v_len3 < _v_len4)
    8191025            {
    8201026              goto _block2__branch1;
    8211027            }
    822             uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_162_m_27 = (_v_len3 - _v_len4);
     1028            if (0 != 0)
     1029            {
     1030              goto _continue1;
     1031            }
     1032            uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_179_m_27 = (_v_len3 - _v_len4);
    8231033            if (!_vt_erm.term_eq (_v_lsplit__list2, 0))
    8241034            {
    8251035              goto _continue1;
    8261036            }
    827             Expr _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_162_m_27 (_v_lsplit__list2, (0 + 1), _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_162_m_27);
     1037            Expr _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_179_m_27 (_v_lsplit__list2, (0 + 1), _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_179_m_27);
    8281038            _ge_list1__0 = _ve_rest;
    8291039            _ve_and = (_ve_and + _vt_erm);
     
    8491059  {
    8501060    {
    851       if ((_ge_list1__0.get_len () != 0))
     1061      if (_ge_list1__0.get_len () != 0)
    8521062      {
    8531063        goto _iter1;
     
    8591069    uintptr_t _v_len1 = _ge_list1__0.get_len ();
    8601070    uintptr_t _v_len2 = 1;
    861     if ((_v_len1 < _v_len2))
     1071    if (_v_len1 < _v_len2)
     1072    {
     1073      RF_FUNC_ERROR (unexpected_fail);
     1074    }
     1075    if (0 != 0)
    8621076    {
    8631077      RF_FUNC_ERROR (unexpected_fail);
     
    8681082    {
    8691083      {
    870         if ((_ve_list2.get_len () < 1))
     1084        if (_ve_list2.get_len () < 1)
    8711085        {
    8721086          goto _block2__branch1;
    8731087        }
    874         RF_lsplit (_ve_list2, 0, _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_176_m_20, _v_lsplit__list2);
     1088        RF_lsplit (_ve_list2, 0, _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_193_m_20, _v_lsplit__list2);
    8751089        for ( ; ; RF_iter(_ve_list2)++)
    8761090        {
     
    8821096            uintptr_t _v_len3 = _v_lsplit__list2.get_len ();
    8831097            uintptr_t _v_len4 = 1;
    884             if ((_v_len3 < _v_len4))
     1098            if (_v_len3 < _v_len4)
    8851099            {
    8861100              goto _block2__branch1;
    8871101            }
    888             uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_176_m_27 = (_v_len3 - _v_len4);
     1102            if (0 != 0)
     1103            {
     1104              goto _continue1;
     1105            }
     1106            uintptr_t _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_193_m_27 = (_v_len3 - _v_len4);
    8891107            if (!_vt_erm.term_eq (_v_lsplit__list2, 0))
    8901108            {
    8911109              goto _continue1;
    8921110            }
    893             Expr _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_176_m_27 (_v_lsplit__list2, (0 + 1), _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_176_m_27);
     1111            Expr _ve__e__e_tmp_m__s__s__s_lib_s_Listrf_m_193_m_27 (_v_lsplit__list2, (0 + 1), _v_len___e__e_tmp_m__s__s__s_lib_s_Listrf_m_193_m_27);
    8941112            _ge_list1__0 = _ve_rest;
    8951113            goto _exit1;
     
    9101128
    9111129RF_FUNC (Paren_m_Term__0, (RF_ARG _ge_arg1;;), (RF_RES _v_res1;;))
    912   if ((_ge_arg1.get_len () != 1))
     1130  if (_ge_arg1.get_len () != 1)
    9131131  {
    9141132    RF_ERROR (_c_4);
     
    9211139
    9221140RF_FUNC (Deparen_m_Term__0, (RF_ARG _ge_arg1;;), (RF_RES _v_res1;;))
    923   if ((_ge_arg1.get_len () != 1))
     1141  if (_ge_arg1.get_len () != 1)
    9241142  {
    9251143    RF_ERROR (_c_4);
     
    9361154static void init_ ()
    9371155{
    938   _c_0 = Expr::create_sym<Func> (Deparen_m_Term__0);
    939   _c_1 = Expr::create_sym<Func> (Paren_m_Term__0);
    940   _c_2 = Expr::create<Integer>("0");
    941   _c_3 = Expr::create<Integer>("1");
    942   _c_4 = Expr::create<Word>("Apply") + Expr::create<Word>("Apply") + Expr::create<Word>("Unexpected fail");
     1156  _c_0 = Expr::create_sym<rftype::Func> (Deparen_m_Term__0);
     1157  _c_1 = Expr::create_sym<rftype::Func> (Paren_m_Term__0);
     1158  _c_2 = Expr::create<rftype::Integer>("0");
     1159  _c_3 = Expr::create<rftype::Integer>("1");
     1160  _c_4 = Expr::create<rftype::Word>("Apply") + Expr::create<rftype::Word>("Apply") + Expr::create<rftype::Word>("Unexpected fail");
    9431161}
    9441162
  • to-imperative/trunk/java/org/refal/plus/library/List.java

    r2337 r2382  
    2828    _block1: {
    2929      _block1__branch1: {
    30         if ((1 != 1))
     30        if (1 != 1)
    3131        {
    3232          break _block1__branch1;
     
    3939        int _v_len1 = _v_deref__arg1.getLen ();
    4040        int _v_len2 = 0;
    41         if ((_v_len1 < _v_len2))
     41        if (_v_len1 < _v_len2)
     42        {
     43          break _block1__branch1;
     44        }
     45        if (0 != 0)
    4246        {
    4347          break _block1__branch1;
     
    7579    {
    7680      _iter1: {
    77         if ((_ge_list1__0.getLen () != 0))
     81        if (_ge_list1__0.getLen () != 0)
    7882        {
    7983          break _iter1;
     
    8488      int _v_len1 = _ge_list2__0.getLen ();
    8589      int _v_len2 = 1;
    86       if ((_v_len1 < _v_len2))
     90      if (_v_len1 < _v_len2)
     91      {
     92        throw new RefalException ("List", "Zip", "Unexpected fail");
     93      }
     94      if (0 != 0)
    8795      {
    8896        throw new RefalException ("List", "Zip", "Unexpected fail");
     
    9199      int _v_len3 = _ge_list1__0.getLen ();
    92100      int _v_len4 = 1;
    93       if ((_v_len3 < _v_len4))
     101      if (_v_len3 < _v_len4)
     102      {
     103        throw new RefalException ("List", "Zip", "Unexpected fail");
     104      }
     105      if (0 != 0)
    94106      {
    95107        throw new RefalException ("List", "Zip", "Unexpected fail");
     
    113125    {
    114126      _iter1: {
    115         if ((_ge_list__0.getLen () != 0))
     127        if (_ge_list__0.getLen () != 0)
    116128        {
    117129          break _iter1;
     
    122134      int _v_len1 = _ge_list__0.getLen ();
    123135      int _v_len2 = 1;
    124       if ((_v_len1 < _v_len2))
     136      if (_v_len1 < _v_len2)
     137      {
     138        throw new RefalException ("List", "Map", "Unexpected fail");
     139      }
     140      if (0 != 0)
    125141      {
    126142        throw new RefalException ("List", "Map", "Unexpected fail");
     
    147163    {
    148164      _iter1: {
    149         if ((_ge_list__0.getLen () != 0))
     165        if (_ge_list__0.getLen () != 0)
    150166        {
    151167          break _iter1;
     
    156172      int _v_len1 = _ge_list__0.getLen ();
    157173      int _v_len2 = 1;
    158       if ((_v_len1 < _v_len2))
     174      if (_v_len1 < _v_len2)
     175      {
     176        throw new RefalException ("List", "Map_e_", "Unexpected fail");
     177      }
     178      if (0 != 0)
    159179      {
    160180        throw new RefalException ("List", "Map_e_", "Unexpected fail");
     
    168188      int _v_len3 = _v_deref__list__0.getLen ();
    169189      int _v_len4 = 0;
    170       if ((_v_len3 < _v_len4))
     190      if (_v_len3 < _v_len4)
     191      {
     192        throw new RefalException ("List", "Map_e_", "Unexpected fail");
     193      }
     194      if (0 != 0)
    171195      {
    172196        throw new RefalException ("List", "Map_e_", "Unexpected fail");
     
    193217    {
    194218      _iter1: {
    195         if ((_ge_list__0.getLen () != 0))
     219        if (_ge_list__0.getLen () != 0)
    196220        {
    197221          break _iter1;
     
    202226      int _v_len1 = _ge_list__0.getLen ();
    203227      int _v_len2 = 1;
    204       if ((_v_len1 < _v_len2))
     228      if (_v_len1 < _v_len2)
     229      {
     230        throw new RefalException ("List", "Filter", "Unexpected fail");
     231      }
     232      if (0 != 0)
    205233      {
    206234        throw new RefalException ("List", "Filter", "Unexpected fail");
     
    218246          int _v_len3 = _v_Apply1.getExpr ().getLen ();
    219247          int _v_len4 = 0;
    220           if ((_v_len3 < _v_len4))
     248          if (_v_len3 < _v_len4)
     249          {
     250            break _block2__branch1;
     251          }
     252          if (0 != 0)
    221253          {
    222254            break _block2__branch1;
     
    241273    {
    242274      _iter1: {
    243         if ((_ge_list__0.getLen () != 0))
     275        if (_ge_list__0.getLen () != 0)
    244276        {
    245277          break _iter1;
     
    251283      int _v_len1 = _ge_list__0.getLen ();
    252284      int _v_len2 = 1;
    253       if ((_v_len1 < _v_len2))
     285      if (_v_len1 < _v_len2)
     286      {
     287        throw new RefalException ("List", "Split", "Unexpected fail");
     288      }
     289      if (0 != 0)
    254290      {
    255291        throw new RefalException ("List", "Split", "Unexpected fail");
     
    267303          int _v_len3 = _v_Apply1.getExpr ().getLen ();
    268304          int _v_len4 = 0;
    269           if ((_v_len3 < _v_len4))
     305          if (_v_len3 < _v_len4)
     306          {
     307            break _block2__branch1;
     308          }
     309          if (0 != 0)
    270310          {
    271311            break _block2__branch1;
     
    285325  static public boolean Elem_q_ (Expr _ve_list, Expr _vt_item) throws RefalException
    286326  {
    287     if ((_ve_list.getLen () < 1))
     327    if (_ve_list.getLen () < 1)
    288328    {
    289329      return false;
     
    300340      int _v_len1 = _v_lsplit__list.getLen ();
    301341      int _v_len2 = 1;
    302       if ((_v_len1 < _v_len2))
     342      if (_v_len1 < _v_len2)
    303343      {
    304344        return false;
     345      }
     346      if (0 != 0)
     347      {
     348        continue _continue1;
    305349      }
    306350      int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_68_m_22 = (_v_len1 - _v_len2);
     
    322366    {
    323367      _iter1: {
    324         if ((_ge_list__0.getLen () != 0))
     368        if (_ge_list__0.getLen () != 0)
    325369        {
    326370          break _iter1;
     
    331375      int _v_len1 = _ge_list__0.getLen ();
    332376      int _v_len2 = 1;
    333       if ((_v_len1 < _v_len2))
     377      if (_v_len1 < _v_len2)
     378      {
     379        throw new RefalException ("List", "Foldr", "Unexpected fail");
     380      }
     381      if (0 != 0)
    334382      {
    335383        throw new RefalException ("List", "Foldr", "Unexpected fail");
     
    355403        int _v_len1 = _ve_list.getLen ();
    356404        int _v_len2 = 1;
    357         if ((_v_len1 < _v_len2))
     405        if (_v_len1 < _v_len2)
     406        {
     407          break _block1__branch1;
     408        }
     409        if (0 != 0)
    358410        {
    359411          break _block1__branch1;
     
    369421  }
    370422
     423  static public boolean All (Expr _vs_Fname, Expr _ve_Fargs, Expr _ve_list) throws RefalException
     424  {
     425    Expr _ge_list__0 = _ve_list;
     426    _exit__iter1: for ( ; ; )
     427    {
     428      _iter1: {
     429        if (_ge_list__0.getLen () != 0)
     430        {
     431          break _iter1;
     432        }
     433        break _exit__iter1;
     434      }
     435      int _v_len1 = _ge_list__0.getLen ();
     436      int _v_len2 = 1;
     437      if (_v_len1 < _v_len2)
     438      {
     439        throw new RefalException ("List", "All", "Unexpected fail");
     440      }
     441      if (0 != 0)
     442      {
     443        throw new RefalException ("List", "All", "Unexpected fail");
     444      }
     445      int _v_len__rest = (_v_len1 - _v_len2);
     446      Expr _vt_item = new Expr (_ge_list__0, 0, 1);
     447      Expr _ve_rest = new Expr (_ge_list__0, (0 + 1), _v_len__rest);
     448      Result _v_Apply1 = new Result ();
     449      if (!Apply.Apply (_vs_Fname, new Expr (_ve_Fargs, _vt_item), _v_Apply1))
     450      {
     451        return false;
     452      }
     453      int _v_len3 = _v_Apply1.getExpr ().getLen ();
     454      int _v_len4 = 0;
     455      if (_v_len3 < _v_len4)
     456      {
     457        return false;
     458      }
     459      if (0 != 0)
     460      {
     461        return false;
     462      }
     463      int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_87_m_41 = (_v_len3 - _v_len4);
     464      Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_87_m_41 = new Expr (_v_Apply1.getExpr (), 0, _v_len___e__e_tmp_m__s_lib_s_Listrf_m_87_m_41);
     465      _ge_list__0 = _ve_rest;
     466    }
     467    return true;
     468  }
     469
     470  static public boolean Any (Expr _vs_Fname, Expr _ve_Fargs, Expr _ve_list) throws RefalException
     471  {
     472    _negation1: {
     473      Expr _ge_list__2 = _ve_list;
     474      _exit__iter1: for ( ; ; )
     475      {
     476        _iter1: {
     477          if (_ge_list__2.getLen () != 0)
     478          {
     479            break _iter1;
     480          }
     481          break _exit__iter1;
     482        }
     483        int _v_len1 = _ge_list__2.getLen ();
     484        int _v_len2 = 1;
     485        if (_v_len1 < _v_len2)
     486        {
     487          throw new RefalException ("List", "Any", "Unexpected fail");
     488        }
     489        if (0 != 0)
     490        {
     491          throw new RefalException ("List", "Any", "Unexpected fail");
     492        }
     493        int _v_len__rest = (_v_len1 - _v_len2);
     494        Expr _vt_item = new Expr (_ge_list__2, 0, 1);
     495        Expr _ve_rest = new Expr (_ge_list__2, (0 + 1), _v_len__rest);
     496        _negation2: {
     497          Result _v_Apply1 = new Result ();
     498          if (!Apply.Apply (_vs_Fname, new Expr (_ve_Fargs, _vt_item), _v_Apply1))
     499          {
     500            break _negation2;
     501          }
     502          int _v_len3 = _v_Apply1.getExpr ().getLen ();
     503          int _v_len4 = 0;
     504          if (_v_len3 < _v_len4)
     505          {
     506            break _negation2;
     507          }
     508          if (0 != 0)
     509          {
     510            break _negation2;
     511          }
     512          int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_95_m_46 = (_v_len3 - _v_len4);
     513          Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_95_m_46 = new Expr (_v_Apply1.getExpr (), 0, _v_len___e__e_tmp_m__s_lib_s_Listrf_m_95_m_46);
     514          break _negation1;
     515        }
     516        _ge_list__2 = _ve_rest;
     517      }
     518      return false;
     519    }
     520    return true;
     521  }
     522
    371523  static public void Concat (Expr _ve_lists, Result _v_res1) throws RefalException
    372524  {
     
    391543        int _v_len1 = _ge_arg1.getLen ();
    392544        int _v_len2 = 1;
    393         if ((_v_len1 < _v_len2))
     545        if (_v_len1 < _v_len2)
     546        {
     547          break _block1__branch1;
     548        }
     549        if (0 != 0)
    394550        {
    395551          break _block1__branch1;
     
    403559        break _block1;
    404560      }
    405       if ((_ge_arg1.getLen () != 0))
     561      if (_ge_arg1.getLen () != 0)
    406562      {
    407563        throw new RefalException ("List", "Reverse", "Unexpected fail");
     
    415571    _block1: {
    416572      _block1__branch1: {
    417         if (((_ge_arg2.getLen () + 1) != 1))
     573        if ((_ge_arg2.getLen () + 1) != 1)
    418574        {
    419575          break _block1__branch1;
     
    427583        int _v_len1 = _v_deref__compose1.getLen ();
    428584        int _v_len2 = 0;
    429         if ((_v_len1 < _v_len2))
     585        if (_v_len1 < _v_len2)
     586        {
     587          break _block1__branch1;
     588        }
     589        if (0 != 0)
    430590        {
    431591          break _block1__branch1;
     
    437597      }
    438598      _block1__branch2: {
    439         if (((_ge_arg2.getLen () + 1) != 2))
     599        if ((_ge_arg2.getLen () + 1) != 2)
    440600        {
    441601          break _block1__branch2;
     
    449609        int _v_len3 = _v_deref__compose2.getLen ();
    450610        int _v_len4 = 0;
    451         if ((_v_len3 < _v_len4))
     611        if (_v_len3 < _v_len4)
     612        {
     613          break _block1__branch2;
     614        }
     615        if (0 != 0)
    452616        {
    453617          break _block1__branch2;
     
    461625      int _v_len5 = (_ge_arg2.getLen () + 1);
    462626      int _v_len6 = 2;
    463       if ((_v_len5 < _v_len6))
     627      if (_v_len5 < _v_len6)
     628      {
     629        throw new RefalException ("List", "Intersperse", "Unexpected fail");
     630      }
     631      if (0 != 0)
    464632      {
    465633        throw new RefalException ("List", "Intersperse", "Unexpected fail");
     
    474642      int _v_len7 = _v_deref__compose3.getLen ();
    475643      int _v_len8 = 0;
    476       if ((_v_len7 < _v_len8))
     644      if (_v_len7 < _v_len8)
     645      {
     646        throw new RefalException ("List", "Intersperse", "Unexpected fail");
     647      }
     648      if (0 != 0)
    477649      {
    478650        throw new RefalException ("List", "Intersperse", "Unexpected fail");
     
    486658      {
    487659        _iter1: {
    488           if ((_ve_list.getLen () != 1))
     660          if (_ve_list.getLen () != 1)
    489661          {
    490662            break _iter1;
     
    496668        int _v_len9 = _ve_list.getLen ();
    497669        int _v_len10 = 1;
    498         if ((_v_len9 < _v_len10))
     670        if (_v_len9 < _v_len10)
     671        {
     672          throw new RefalException ("List", "Intersperse", "Unexpected fail");
     673        }
     674        if (0 != 0)
    499675        {
    500676          throw new RefalException ("List", "Intersperse", "Unexpected fail");
     
    517693    {
    518694      _iter1: {
    519         if ((_ge_list__0.getLen () != 0))
     695        if (_ge_list__0.getLen () != 0)
    520696        {
    521697          break _iter1;
     
    526702      _block1: {
    527703        _block1__branch1: {
    528           if ((_ge_list__0.getLen () < _ve_sep.getLen ()))
     704          if (_ge_list__0.getLen () < _ve_sep.getLen ())
    529705          {
    530706            break _block1__branch1;
     
    541717            int _v_len1 = _v_lsplit__list__0.getLen ();
    542718            int _v_len2 = _ve_sep.getLen ();
    543             if ((_v_len1 < _v_len2))
     719            if (_v_len1 < _v_len2)
    544720            {
    545721              break _block1__branch1;
     722            }
     723            if (0 != 0)
     724            {
     725              continue _continue1;
    546726            }
    547727            int _v_len__2 = (_v_len1 - _v_len2);
     
    570750    {
    571751      _iter1: {
    572         if ((_ge_expr__0.getLen () != 0))
     752        if (_ge_expr__0.getLen () != 0)
    573753        {
    574754          break _iter1;
     
    579759      int _v_len1 = _ge_expr__0.getLen ();
    580760      int _v_len2 = 1;
    581       if ((_v_len1 < _v_len2))
     761      if (_v_len1 < _v_len2)
     762      {
     763        throw new RefalException ("List", "Nub", "Unexpected fail");
     764      }
     765      if (0 != 0)
    582766      {
    583767        throw new RefalException ("List", "Nub", "Unexpected fail");
     
    588772      _block2: {
    589773        _block2__branch1: {
    590           if ((_ve_selected.getLen () < 1))
     774          if (_ve_selected.getLen () < 1)
    591775          {
    592776            break _block2__branch1;
     
    595779          _exit1: _continue1: for ( ; ; _va_6.next ())
    596780          {
    597             Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_116_m_21 = _va_6.getLeft();
     781            Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_133_m_21 = _va_6.getLeft();
    598782            Expr _v_lsplit__selected = _va_6.getRight();
    599783            if (!_va_6.isValid ())
     
    603787            int _v_len3 = _v_lsplit__selected.getLen ();
    604788            int _v_len4 = 1;
    605             if ((_v_len3 < _v_len4))
     789            if (_v_len3 < _v_len4)
    606790            {
    607791              break _block2__branch1;
    608792            }
    609             int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_116_m_28 = (_v_len3 - _v_len4);
     793            if (0 != 0)
     794            {
     795              continue _continue1;
     796            }
     797            int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_133_m_28 = (_v_len3 - _v_len4);
    610798            if (!_vt_erm.eq (_v_lsplit__selected, 0))
    611799            {
    612800              continue _continue1;
    613801            }
    614             Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_116_m_28 = new Expr (_v_lsplit__selected, (0 + 1), _v_len___e__e_tmp_m__s_lib_s_Listrf_m_116_m_28);
     802            Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_133_m_28 = new Expr (_v_lsplit__selected, (0 + 1), _v_len___e__e_tmp_m__s_lib_s_Listrf_m_133_m_28);
    615803            _ge_expr__0 = _ve_rest;
    616804            break _exit1;
     
    652840    {
    653841      _iter1: {
    654         if ((_ge_list2__0.getLen () != 0))
     842        if (_ge_list2__0.getLen () != 0)
    655843        {
    656844          break _iter1;
     
    661849      int _v_len1 = _ge_list2__0.getLen ();
    662850      int _v_len2 = 1;
    663       if ((_v_len1 < _v_len2))
     851      if (_v_len1 < _v_len2)
     852      {
     853        throw new RefalException ("List", "Or", "Unexpected fail");
     854      }
     855      if (0 != 0)
    664856      {
    665857        throw new RefalException ("List", "Or", "Unexpected fail");
     
    670862      _block2: {
    671863        _block2__branch1: {
    672           if ((_ge_list1__0.getLen () < 1))
     864          if (_ge_list1__0.getLen () < 1)
    673865          {
    674866            break _block2__branch1;
     
    677869          _exit1: _continue1: for ( ; ; _va_7.next ())
    678870          {
    679             Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_148_m_20 = _va_7.getLeft();
     871            Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_165_m_20 = _va_7.getLeft();
    680872            Expr _v_lsplit__list1__0 = _va_7.getRight();
    681873            if (!_va_7.isValid ())
     
    685877            int _v_len3 = _v_lsplit__list1__0.getLen ();
    686878            int _v_len4 = 1;
    687             if ((_v_len3 < _v_len4))
     879            if (_v_len3 < _v_len4)
    688880            {
    689881              break _block2__branch1;
    690882            }
    691             int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_148_m_27 = (_v_len3 - _v_len4);
     883            if (0 != 0)
     884            {
     885              continue _continue1;
     886            }
     887            int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_165_m_27 = (_v_len3 - _v_len4);
    692888            if (!_vt_erm.eq (_v_lsplit__list1__0, 0))
    693889            {
    694890              continue _continue1;
    695891            }
    696             Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_148_m_27 = new Expr (_v_lsplit__list1__0, (0 + 1), _v_len___e__e_tmp_m__s_lib_s_Listrf_m_148_m_27);
     892            Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_165_m_27 = new Expr (_v_lsplit__list1__0, (0 + 1), _v_len___e__e_tmp_m__s_lib_s_Listrf_m_165_m_27);
    697893            _ge_list2__0 = _ve_rest;
    698894            break _exit1;
     
    713909    {
    714910      _iter1: {
    715         if ((_ge_list1__0.getLen () != 0))
     911        if (_ge_list1__0.getLen () != 0)
    716912        {
    717913          break _iter1;
     
    722918      int _v_len1 = _ge_list1__0.getLen ();
    723919      int _v_len2 = 1;
    724       if ((_v_len1 < _v_len2))
     920      if (_v_len1 < _v_len2)
     921      {
     922        throw new RefalException ("List", "And", "Unexpected fail");
     923      }
     924      if (0 != 0)
    725925      {
    726926        throw new RefalException ("List", "And", "Unexpected fail");
     
    731931      _block2: {
    732932        _block2__branch1: {
    733           if ((_ve_list2.getLen () < 1))
     933          if (_ve_list2.getLen () < 1)
    734934          {
    735935            break _block2__branch1;
     
    738938          _exit1: _continue1: for ( ; ; _va_8.next ())
    739939          {
    740             Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_162_m_20 = _va_8.getLeft();
     940            Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_179_m_20 = _va_8.getLeft();
    741941            Expr _v_lsplit__list2 = _va_8.getRight();
    742942            if (!_va_8.isValid ())
     
    746946            int _v_len3 = _v_lsplit__list2.getLen ();
    747947            int _v_len4 = 1;
    748             if ((_v_len3 < _v_len4))
     948            if (_v_len3 < _v_len4)
    749949            {
    750950              break _block2__branch1;
    751951            }
    752             int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_162_m_27 = (_v_len3 - _v_len4);
     952            if (0 != 0)
     953            {
     954              continue _continue1;
     955            }
     956            int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_179_m_27 = (_v_len3 - _v_len4);
    753957            if (!_vt_erm.eq (_v_lsplit__list2, 0))
    754958            {
    755959              continue _continue1;
    756960            }
    757             Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_162_m_27 = new Expr (_v_lsplit__list2, (0 + 1), _v_len___e__e_tmp_m__s_lib_s_Listrf_m_162_m_27);
     961            Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_179_m_27 = new Expr (_v_lsplit__list2, (0 + 1), _v_len___e__e_tmp_m__s_lib_s_Listrf_m_179_m_27);
    758962            _ge_list1__0 = _ve_rest;
    759963            _ve_and = new Expr (_ve_and, _vt_erm);
     
    774978    {
    775979      _iter1: {
    776         if ((_ge_list1__0.getLen () != 0))
     980        if (_ge_list1__0.getLen () != 0)
    777981        {
    778982          break _iter1;
     
    783987      int _v_len1 = _ge_list1__0.getLen ();
    784988      int _v_len2 = 1;
    785       if ((_v_len1 < _v_len2))
     989      if (_v_len1 < _v_len2)
     990      {
     991        throw new RefalException ("List", "Sub", "Unexpected fail");
     992      }
     993      if (0 != 0)
    786994      {
    787995        throw new RefalException ("List", "Sub", "Unexpected fail");
     
    7921000      _block2: {
    7931001        _block2__branch1: {
    794           if ((_ve_list2.getLen () < 1))
     1002          if (_ve_list2.getLen () < 1)
    7951003          {
    7961004            break _block2__branch1;
     
    7991007          _exit1: _continue1: for ( ; ; _va_9.next ())
    8001008          {
    801             Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_176_m_20 = _va_9.getLeft();
     1009            Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_193_m_20 = _va_9.getLeft();
    8021010            Expr _v_lsplit__list2 = _va_9.getRight();
    8031011            if (!_va_9.isValid ())
     
    8071015            int _v_len3 = _v_lsplit__list2.getLen ();
    8081016            int _v_len4 = 1;
    809             if ((_v_len3 < _v_len4))
     1017            if (_v_len3 < _v_len4)
    8101018            {
    8111019              break _block2__branch1;
    8121020            }
    813             int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_176_m_27 = (_v_len3 - _v_len4);
     1021            if (0 != 0)
     1022            {
     1023              continue _continue1;
     1024            }
     1025            int _v_len___e__e_tmp_m__s_lib_s_Listrf_m_193_m_27 = (_v_len3 - _v_len4);
    8141026            if (!_vt_erm.eq (_v_lsplit__list2, 0))
    8151027            {
    8161028              continue _continue1;
    8171029            }
    818             Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_176_m_27 = new Expr (_v_lsplit__list2, (0 + 1), _v_len___e__e_tmp_m__s_lib_s_Listrf_m_176_m_27);
     1030            Expr _ve__e__e_tmp_m__s_lib_s_Listrf_m_193_m_27 = new Expr (_v_lsplit__list2, (0 + 1), _v_len___e__e_tmp_m__s_lib_s_Listrf_m_193_m_27);
    8191031            _ge_list1__0 = _ve_rest;
    8201032            break _exit1;
     
    8301042  static private boolean Paren_m_Term__0 (Expr _ge_arg1, Result _v_res1) throws RefalException
    8311043  {
    832     if ((_ge_arg1.getLen () != 1))
     1044    if (_ge_arg1.getLen () != 1)
    8331045    {
    8341046      throw new RefalException (_c_4);
     
    8431055  static private boolean Deparen_m_Term__0 (Expr _ge_arg1, Result _v_res1) throws RefalException
    8441056  {
    845     if ((_ge_arg1.getLen () != 1))
     1057    if (_ge_arg1.getLen () != 1)
    8461058    {
    8471059      throw new RefalException (_c_4);
  • to-imperative/trunk/lib/List.rf

    r2337 r2382  
    8080    <Foldr s.Fname e.Fargs (t.last) (e.something)>;
    8181  /*empty*/;
     82};
     83
     84All s.Fname e.Fargs (e.list) =
     85  e.list $iter {
     86    e.list : t.item e.rest =
     87      <Apply s.Fname e.Fargs t.item> : e,
     88      e.rest;
     89  } :: e.list,
     90  e.list : /*empty*/;
     91
     92Any s.Fname e.Fargs (e.list) = # \{
     93  e.list $iter {
     94    e.list : t.item e.rest =
     95      # \{ <Apply s.Fname e.Fargs t.item> : e; },
     96      e.rest;
     97  } :: e.list,
     98  e.list : /*empty*/;
    8299};
    83100
  • to-imperative/trunk/lib/List.rfi

    r2337 r2382  
    2222
    2323$func Foldr1 s.Fname e.Fargs (e.list) = e.value;
     24
     25$func? All s.Fname e.Fargs (e.list) = ;
     26
     27$func? Any s.Fname e.Fargs (e.list) = ;
    2428
    2529$func Concat e.lists = e.list;
Note: See TracChangeset for help on using the changeset viewer.