table integrate with rules once, table integrate with rules once ignore caseThis function combines the benefits of table integrate with rules() and table integrate once(). Every entry in the look-up table is referenced only once.
Indirect parameter passing is disabled
6 - 9 (For parameter description and return values: see table integrate() )
table initialize( animals,
{ { Name, Size, Speed, Movement, Leg count, Surface, Special Skills },
{ Parrot, small, 50, flying, 2, feathers, immitates voices },
{ Dog, small, 30, walking, 4, hair, sense of smell },
{ Cat, small, 20, walking, 4, hair, night vision },
{ Fox, small, 25, walking, 4, hair, relatively smart },
{ Owl, small, 80, flying, 2, feathers, night vision },
{ Worm, tiny, 0.01, crawling, 0, mucous skin,unclear },
{ Whale, huge, 30, swimming, 0, skin, relatively smart } } );
headers[] = [animals:..,0]-{Name};
table initialize( target,
{ { Size, Speed, Movement, Leg count, Surface, Special Skills, Animal, Double Speed },
{ '*', ':mod([.],40)=0','*', '*', '*', '*', "It's an", 2 }, // Speed divisible by 40 -> Owl
{ small, '20..30', '*', '*', Hair, '*', "It's a ", 2 }, // Dog
{ small, '20..30', '*', '*', Hair, '*', "It's a ", 2 }, // Cat
{ small, '20..30', '*', '*', Hair, '*', "It's a ", 2 }, // Fox
{ small, '20..30', '*', '*', Hair, '*', "It's a ", 2 }, // No match
{ '*', '<1', '*', '*', '*', '*', "", 2 } } );
count[] = table integrate with rules once ignore case ( target, headers[], {Animal, Movement, Double Speed},
animals, headers[], {Name, Movement, Speed}, { append with space, overwrite, mul }, true, Counter );
// Data integration process: Overwrite movement in target table, Add animal name to 'It's ...' and note double speed.
echo("List of animals with counted lookups:");
table list( animals );
echo("Note: Row 5 resulted in no match because all matching items in the lookup table are already taken.");
echo("Target table after lookup (", count[], " items found):");
table list( target );
List of animals with counted lookups:
0 : Name | Size | Speed | Movement | Leg count | Surface | Special Skills | Counter
1 : Parrot | small | 50 | flying | 2 | feathers | immitates voices |
2 : Dog | small | 30 | walking | 4 | hair | sense of smell | 1
3 : Cat | small | 20 | walking | 4 | hair | night vision | 1
4 : Fox | small | 25 | walking | 4 | hair | relatively smart | 1
5 : Owl | small | 80 | flying | 2 | feathers | night vision | 1
6 : Worm | tiny | 0.01 | crawling | 0 | mucous skin | unclear | 1
7 : Whale | huge | 30 | swimming | 0 | skin | relatively smart |
Note: Row 5 resulted in no match because all matching items in the lookup table are already taken.
Target table after lookup (5 items found):
0 : Size | Speed | Movement | Leg count | Surface | Special Skills | Animal | Double Speed
1 : * | :mod([.],40)=0 | flying | * | * | * | It's an Owl | 160
2 : small | 20..30 | walking | * | Hair | * | It's a Dog | 60
3 : small | 20..30 | walking | * | Hair | * | It's a Cat | 40
4 : small | 20..30 | walking | * | Hair | * | It's a Fox | 50
5 : small | 20..30 | * | * | Hair | * | It's a | 2
6 : * | <1 | crawling | * | * | * | Worm | 0.02
table integrate with rules
table integrate once
table integrate
table lookup with rules once
table expand with rules once
table digest with rules once