[ ] array:Copy . // - получаем nil [] array:Copy . // - получаем nil [nil] array:Copy . // - получаем nil [empty] array:Copy . // - получаем nil [ ] array:CopyNotNil . // - получаем [ ] [] array:CopyNotNil . // - получаем [ ] [nil] array:CopyNotNil . // - получаем [ ] [empty] array:CopyNotNil . // - получаем [ ] [ 1 2 3 ] array:Copy . // - получаем [ 1 2 3 ] [ 1 2 3 ] .filter> ( 2 != ) array:Copy . // - получаем [ 1 3 ] [ 1 2 3 ] .filter> ( 2 == ) array:Copy . // - получаем [ 2 ] [ 1 2 3 ] .map> ( 1 + ) array:Copy . // - получаем [ 2 3 4 ] [ 1 2 3 ] .map> ( 2 + ) array:Copy . // - получаем [ 3 4 5 ] [ 1 2 3 ] .map> ( 2 * ) array:Copy . // - получаем [ 2 4 6 ] [ 1 2 3 ] .filter> ( 2 != ) .map> ( 1 + ) array:Copy . // - получаем [ 2 4 ] [ 1 2 3 ] .filter> ( 2 == ) .map> ( 1 + ) array:Copy . // - получаем [ 3 ] [ 1 2 3 4 ] .slice> 2 array:Copy . // - получаем [ 1 2 ] [ 3 4 ] [ 1 2 3 4 5 6 ] .slice> 3 array:Copy . // - получаем [ 1 2 3 ] [ 4 5 6 ] [ 1 2 3 4 ] .filter> IsOdd .slice> 2 array:Copy . // - получаем [ 1 3 ] [ 1 2 3 4 ] .filter> IsEven .slice> 2 array:Copy . // - получаем [ 2 4 ] [ 1 2 3 4 5 6 7 8 9 10 ] .filter> IsOdd array:Copy . // - получаем [ 1 3 5 7 9 ] [ 1 2 3 4 5 6 7 8 9 10 ] .filter> IsEven array:Copy . // - получаем [ 2 4 6 8 10 ] [ 1 2 ] .join> [ 3 4 ] array:Copy . // - получаем [ 1 2 3 4 ] [ 1 2 ] .join> [ 3 4 ] .filter> IsOdd array:Copy . // - получаем [ 1 3 ] [ 1 2 ] .join> [ 3 4 ] .filter> IsEven array:Copy . // - получаем [ 2 4 ] [ 1 2 ] .join> [ 3 4 ] .map> ( 1 + ) array:Copy . // - получаем [ 2 3 4 5 ] [ 1 2 ] .join> [ 3 4 ] .filter> IsOdd .map> ( 1 + ) array:Copy . // - получаем [ 2 4 ] [ 1 2 ] .join> [ 3 4 ] .filter> IsEven .map> ( 1 + ) array:Copy . // - получаем [ 3 5 ] [ 1 2 3 4 ] .join> [ 5 6 7 8 ] .filter> IsOdd .map> ( 1 + ) .slice> 2 array:Copy . // - получаем [ 2 4 ] [ 6 8 ] [ 1 2 3 4 ] .join> [ 5 6 7 8 ] .filter> IsEven .map> ( 1 + ) .slice> 2 array:Copy . // - получаем [ 3 5 ] [ 7 9 ] [ 1 2 3 4 ] .join> [ 5 6 7 8 ] .map> ( 1 + ) .filter> IsOdd .slice> 2 array:Copy . // - получаем [ 3 5 ] [ 7 9 ] [ 1 2 3 4 ] .join> [ 5 6 7 8 ] .map> ( 1 + ) .filter> IsEven .slice> 2 array:Copy . // - получаем [ 2 4 ] [ 6 8 ] [ 1 2 3 4 ] .reverted> array:Copy . // - получаем [ 4 3 2 1 ] [ 1 2 ] .join> [ 3 4 ] .reverted> array:Copy . // - получаем [ 4 3 2 1 ] [ 1 2 ] .join> [ 3 4 ] .map> ( 1 + ) .reverted> array:Copy . // - получаем [ 5 4 3 2 ] [ 1 2 ] .join> [ 3 4 ] .filter> ( 2 != ) .map> ( 1 + ) .reverted> array:Copy . // - получаем [ 5 4 2 ]
Примеры:
BOOLEAN elem_func InheritsFrom ModelElement IN anAncestor anAncestor :Cached: ( RULES ( Self IsNil ) false ( Self anAncestor .IsSameType ) true ( Self .Inherits .filter> ( anAncestor call.me ) .CountIt > 0 ) true DEFAULT false ; // RULES ) >>> Result ; // InheritsFrom ... ARRAY FUNCTION .filterNil> ARRAY IN anArray anArray .filter> ( IsNil ! ) >>> Result ; // .filterNil> ... ARRAY FUNCTION .filterMixIns> ARRAY IN anArray anArray .filter> ( .IsMixIn ! ) // .filter> ( .IsPureMixIn ! ) >>> Result ; // .filterMixIns> ... ModelElement elem_func FirstOperation Cached: ( Self .Operations .filter> ( .IsLocalMethod ! ) .FirstElement ) >>> Result ; // FirstOperation ... elem_iterator ForClassImplements Self .Implements .filter> .IsClassImplementable >>> Result ; // ForClassImplements ... elem_iterator PropertyKeys RULES ( Self .Parent .IsTestClass ) ( [ Self .Parent .EffectiveType .SelfParam ] .join> ( Self .Attributes ) ) DEFAULT ( Self .Attributes ) ; // RULES .filter> ( .IsControlPrim ! ) >>> Result ; // PropertyKeys ... elem_iterator GlobalVars RULES ( Self .IsClassOrMixIn ) ( Self .Attributes .filter> ( .IsStereotype st_static::Attribute ) if ( Self .IsSingleton ) then begin .join> ToArray: ( Self .InstanceField ) end // ( Self .IsSingleton ) .join> ( Self .InnerGlobalVars ) ) ( Self .IsUtilityPack ) ( Self .Attributes .filter> ( .IsProperty ! ) .join> ( Self .InnerGlobalVars ) ) DEFAULT [empty] ; // RULES >>> Result ; // GlobalVars ... ARRAY FUNCTION .mapToTarget> ARRAY IN anArray anArray .map> .Target >>> Result ; // .mapToTarget> ... elem_proc OutUses: STRING IN aUCPrefix ^ IN aUsed ^ IN aLambda ^ IN anItemTransform ARRAY VAR l_Used aUsed DO >>> l_Used ARRAY FUNCTION .filterUsed> ARRAY IN anArray anArray .filter> ( IN anItem anItem .UnitName >>> anItem if ( anItem .NotInArray: l_Used ) then begin anItem .AddToArray: l_Used true end else begin false end ) >>> Result ; // .filterUsed> 'uses' .Out VAR l_NeedComma false >>> l_NeedComma Indented: ( aLambda DO .map> .UnitProducer .filterNil> .filterMixIns> .filter> ( Self ?!= ) .filter> ( .UnitName Self .UnitName ?!= ) .filter> ( .UnitName 'System' ?!= ) //.map> .UnitName .filterUsed> .for> ( IN anItem anItem .IfDef: ( anItem anItemTransform DO .WithComma: l_NeedComma .Out ) ) // .for> if ( ( Self .IsElementProxy ) OR ( Self .UPisTrue "need UC" ) ) then begin Self .UserCode: aUCPrefix () end // ( Self .IsElementProxy ) if ( ( aUCPrefix 'intf_uses' == ) AND ( Self .UPisTrue "need UC in project" ) ) then begin Self .UserCode: 'manualuses' () end // ( Self .IsElementProxy ) ) // Indented: ';' .Out OutLn ; // OutUses:
Откуда "ноги растут":
http://programmingmindstream.blogspot.ru/2014/01/todo_24.html
Комментариев нет:
Отправить комментарий