http://blog.marcocantu.com/blog/2016-february-stepping-values-for-loop.html
https://bitbucket.org/lulinalex/mindstream/commits/54a55b7cdfd83633727028150df2b5d8412ac44c
Понятно, что step несложно добавить - в Inc I - написать I := I+ Step
У меня по-моему "несколько лаконичнее" вышло, чем у гуру.
https://bitbucket.org/lulinalex/mindstream/commits/54a55b7cdfd83633727028150df2b5d8412ac44c
Test ForToTest ARRAY operator to ^@ IN aFrom ^ IN aTo @ ( OBJECT IN aLambda INTEGER VAR I I := ( aFrom DO ) Dec I ( aTo DO I ) - LOOP ( Inc I I aLambda DO ) ) FunctorToIterator >>> Result ; // 1to for ( 1 to 10 ) . // - печатает числа от 1 до 10 '' . for ( 1 to 20 ) . // - печатает числа от 1 до 20 '' . for ( 0 to 20 ) . // - печатает числа от 0 до 20 '' . for ( -1 to 20 ) . // - печатает числа от -1 до 20 '' . for ( -1 to 21 ) . // - печатает числа от -1 до 21 '' . 0 for ( 1 to 10 ) + . // - суммирует числа от 1 до 10 и печатает результат '' . for ( 1 to 10 Reverted ) . // - печатает числа от 10 до 1 /*{ ARRAY VAR L 1to 10 >>> L @ . L ITERATE // - печатает числа от 1 до 10 '' . @ . 1to 20 ITERATE // - печатает числа от 1 до 20 '' . 0 @ + L ITERATE . // - суммирует числа от 1 до 10 и печатает результат '' . @ . L Reverted ITERATE // - печатает числа от 10 до 1}*/ ; // ForToTest ForToTest
Понятно, что step несложно добавить - в Inc I - написать I := I
У меня по-моему "несколько лаконичнее" вышло, чем у гуру.
Понятно, что step несложно добавить - в Dec I - написать I := I - Step
ОтветитьУдалить