# Taxi

Taxi is an esoteric programming language invented by Sean Heber in 2005. Programs are built by giving directions to destinations on a map which is where computation takes place. The virtual taxi the programmer controls can carry up to three data passengers at one time between destinations. The passengers pay the driver for this service and in turn the programmer must be sure to stop by a gas station from time to time or else the car will run out of fuel prematurely ending the program.

Destination Operation
Auctioneer School converts string passengers to uppercase, non-string is an error
Bird's Bench one passenger can wait here until later, but only 1
Charboil Grill convert a numerical passenger to a single ASCII character (string) or vice-versa, strings longer than 1 are an error
Chop Suey takes a string passenger and breaks it up into individual string passengers that hold one character each, so "Hi" results in 2 passengers: "H" and "i", non-string is an error
Collator Express tests if the first string passenger is less than the second and returns the first if true or no one if not true, non-string is an error
Crime Lab tests if all dropped off string passengers are equal to each other, if so returns 1 passenger with the value, otherwise no passenger is returned, non-string is an error
Cyclone makes clones of passengers, drop 1 off, get original plus 1 copy back, drop 3 off, get original 3, plus 3 copies back, etc.
Divide and Conquer divides numerical passengers, anything non-numeric is an error
Equal's Corner tests if all dropped off numerical passengers are equal to each other, if so returns 1 passenger with the value, otherwise no passenger is returned, non-numeric is an error
Firemouth Grill any number of passengers can be dropped off here, but picked up in random and unknown order
Fueler Up gas station: 1.92/gallon
Go More gas station: 1.75/gallon
Heisenberg's pickup an unspecified random integer
Joyless Park passengers dropped off here form a FIFO queue so they can be picked up again later
Knots Landing inverts boolean logic via numerical passengers: non-zero becomes 0, 0 becomes 1, non-numerical is an error
KonKat's concatenates string passengers, anything non-string is an error
Little League Field converts string passengers to lowercase, non-string is an error
Magic Eight tests if the first passenger is less than the second and returns the first if true or no one if not true, non-numerical is an error
Multiplication Station multiplies numerical passengers, anything non-numeric is an error
Narrow Path Park passengers dropped off here form a stack (LIFO) so they can be picked up again later
Post Office drop off string passengers to print to stdout, pickup a passenger to read a string line from stdin
Riverview Bridge passengers dropped off at Riverview Bridge seem to always fall over the side and into the river thus the driver collects no pay, but at least the pesky passenger is gone
Rob's Rest one passenger can wait here until later, but only 1
Rounders Pub rounds numerical passengers, non-numerical is an error
Starchild Numerology pickup a specified numerical value
Sunny Skies Park passengers dropped off here form a FIFO queue so they can be picked up again later
Taxi Garage starting and termination point
The Babelfishery translates a numerical passenger to a string passenger or vice-versa
The Underground takes 1 numerical passenger and subtracts 1, if the result is 0 or less than 0, no passenger is returned otherwise the result is returned, non-numerical is an error
Tom's Trims removes whitespace from beginning and ending of string passengers, non-string is an error
Trunkers truncates numerical passengers to an integer, non-numerical is an error
What's The Difference subtracts numerical passengers, anything non-numeric is an error
Writer's Depot pickup a specified string
Zoom Zoom gas station: 1.45/gallon

## Hello, world! in Taxi

```"Hello, World!" is waiting at the Writer's Depot.
Go to Writer's Depot: west 1st left, 2nd right, 1st left, 2nd left.
Pickup a passenger going to the Post Office.
Go to the Post Office: north 1st right, 2nd right, 1st left.
Go to the Taxi Garage: north 1st right, 1st left, 1st right.
```