table expand with rules once, table expand with rules once ignore caseThis function combines the benefits of table expand 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 expand() )
table initialize( animals,
{ { Name, Size, Speed, Movement, Leg count, Surface, Special Skills },
{ Parrot, small, 50, flying, 2, feathers, immitates voices },
{ Donkey, medium, 28, walking, 4, hair, agriculture use },
{ 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, Cat, Fox
{ small, '20..30', '*', '*', Hair, '*', "It's a ", 2 }, // No match (items already found)
{ '*', '20..30', '*', '*', '*', '*', "", 2 } } ); // Donkey and Whale only
count[] = table expand 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: Dog/Cat/Fox can be found only once. Row 4: Donkey and Whale found (Dog/Cat/Fox 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 : Donkey | medium | 28 | walking | 4 | hair | agriculture use | 1
3 : Dog | small | 30 | walking | 4 | hair | sense of smell | 1
4 : Cat | small | 20 | walking | 4 | hair | night vision | 1
5 : Fox | small | 25 | walking | 4 | hair | relatively smart | 1
6 : Owl | small | 80 | flying | 2 | feathers | night vision | 1
7 : Worm | tiny | 0.01 | crawling | 0 | mucous skin | unclear |
8 : Whale | huge | 30 | swimming | 0 | skin | relatively smart | 1
Note: Dog/Cat/Fox can be found only once. Row 4: Donkey and Whale found (Dog/Cat/Fox already taken)
Target table after lookup (6 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 : * | 20..30 | walking | * | * | * | Donkey | 56
7 : * | 20..30 | swimming | * | * | * | Whale | 60
table expand with rules
table expand
table lookup with rules once
table integrate with rules once
table digest with rules once