table expand once, table expand once ignore case
This function works very similarly like table expand(), with the only difference that every row in the lookup table can be be retrieved
only once and will then be internally marked as taken. Further lookups for remaining rows in the target table will skip the lookup table rows already taken.
The search time ratio versus table size n is O ( log(n)) ).

Indirect parameter passing is disabled
6 - 8 (For parameter description and return values: see table lookup() )
table load( lookup, "Examples/Table Lookup Example 1.csv" );
table initialize( target, { { Name, Favorite Country },
{ Antonio, Italy}, { Fritz, Germany }, { Andreas, Germany }, { Pascale, France}, { Mike, USA } } );
echo("Target table before looking up with 'table digest':");
table list ( target );
echo("Lookup table:");
table list ( lookup );
count[] = table expand once ( target, Favorite Country, {Meal, Rating Sum},
lookup, Country, { Recommendation, Rating }, { append with space, add }, true, {Counter,Counter} );
echo("Target table after looking up with 'table digest':");
table list ( target );
echo("Lookup table after looking up to check the 'Counter' column:");
table list ( lookup );
echo("Number of accesses: ", count[] );
Target table before looking up with 'table digest':
0 : Name | Favorite Country
1 : Antonio | Italy
2 : Fritz | Germany
3 : Andreas | Germany
4 : Pascale | France
5 : Mike | USA
Lookup table:
0 : City | Country | Meal or Drink | Recommendation | Rating
1 : Hamburg | Germany | Meal | Hering | 2
2 : Hamburg | Germany | Meal | Seafood | 3
3 : New York | USA | Meal | Pizza | 5
4 : New York | USA | Meal | Hamburger | 5
5 : Florence | Italy | Drink | Chianti | 4
6 : Florence | Italy | Meal | Tagliatelli | 5
7 : Edinburgh | G. Britain | Drink | Single Malt | 3
8 : Edinburgh | G. Britain | Meal | Fish & Chips | 3
9 : New York | USA | Drink | Lager | 3
10 : Camarque | France | Meal | Cheese | 3
11 : Camarque | France | Spice | Fleur du sel | 4
12 : Boston | USA | Meal | Lobster | 4
13 : Plzen | Czech Rep. | Drink | Pils | 4
14 : Munich | Germany | Meal | Pork | 3
15 : Munich | Germany | Drink | Weissbier | 5
Target table after looking up with 'table digest':
0 : Name | Favorite Country | Meal | Rating Sum | Counter
1 : Antonio | Italy | Chianti | 4 | 1
2 : Antonio | Italy | Tagliatelli | 5 | 1
3 : Fritz | Germany | Hering | 2 | 1
4 : Fritz | Germany | Seafood | 3 | 1
5 : Fritz | Germany | Pork | 3 | 1
6 : Fritz | Germany | Weissbier | 5 | 1
7 : Andreas | Germany | | |
8 : Pascale | France | Cheese | 3 | 1
9 : Pascale | France | Fleur du sel | 4 | 1
10 : Mike | USA | Pizza | 5 | 1
11 : Mike | USA | Hamburger | 5 | 1
12 : Mike | USA | Lager | 3 | 1
13 : Mike | USA | Lobster | 4 | 1
Lookup table after looking up to check the 'Counter' column:
0 : City | Country | Meal or Drink | Recommendation | Rating | Counter
1 : Hamburg | Germany | Meal | Hering | 2 | 1
2 : Hamburg | Germany | Meal | Seafood | 3 | 1
3 : New York | USA | Meal | Pizza | 5 | 1
4 : New York | USA | Meal | Hamburger | 5 | 1
5 : Florence | Italy | Drink | Chianti | 4 | 1
6 : Florence | Italy | Meal | Tagliatelli | 5 | 1
7 : Edinburgh | G. Britain | Drink | Single Malt | 3 |
8 : Edinburgh | G. Britain | Meal | Fish & Chips | 3 |
9 : New York | USA | Drink | Lager | 3 | 1
10 : Camarque | France | Meal | Cheese | 3 | 1
11 : Camarque | France | Spice | Fleur du sel | 4 | 1
12 : Boston | USA | Meal | Lobster | 4 | 1
13 : Plzen | Czech Rep. | Drink | Pils | 4 |
14 : Munich | Germany | Meal | Pork | 3 | 1
15 : Munich | Germany | Drink | Weissbier | 5 | 1
Number of accesses: 24