Data Types
TinyPanda is dynamically typed. You do not declare variable types; types belong to the values. A single variable can hold any type of data and switch types freely over its lifecycle.
bamboo msg = "I am a string!"; // Starts as a String
msg = 42; // Changes to an Integer
msg = 9.99; // Changes to a Float
msg = true; // Changes to a Boolean
TinyPanda supports these following fundamental data types:
Strings
Textual data wrapped in double quotes ("...").
TinyPanda only supports double quotes. Single quotes (
'...') will cause a syntax error.
bamboo name = "Panda";
whatIs(name) // Outputs: STRING
Check out all available string builtins here.
Escape Characters
TinyPanda strings support special character combinations starting with a backslash \ to format your console output, while forward slashes / print normally as raw text.
TinyPanda supports two escape characters:
\n: Adds a new line in the string.\t: Adds a tab space in the string.
echoln("Hello\tTinyPanda!");
echoln("We are reading\nTinypanda Docs.");
// Outputs:
// Hello TinyPanda!
// We are reading
// TinyPanda Docs.
Integers
Whole numbers (positive, negative, or zero) without decimals.
bamboo age = 22;
bamboo temperature = -5;
Floats
Numbers containing a fractional part or a decimal point. This allows TinyPanda to handle precise continuous measurements or mathematical constants.
bamboo pi = 3.14159;
bamboo price = 99.95;
bamboo negativeFloat = -0.75;
Booleans
Logical truth values: either true or false.
bamboo isHungry = true;
Lists
List in TinyPanda are ordered, dynamic collections of values. List are used to store a bunch of items together in one place. Think of them as a collection container.
Creating a List
Lists are initialized using square brackets [...] with elements separated by commas ,. You can assign them to identifiers using the bamboo keyword just like any other data type:
bamboo numbers = [10, 20, 30];
bamboo emptyList = [];
echoln(whatIs(numbers)); // Outputs: LIST
Mixed-Type Collections
TinyPanda lets you mix different kinds of data inside the same list. You don't have to stick to just numbers or just words. You can mix them all up together:
bamboo myList = [99, true, "hello", 3.14, fn(x){x * x}(9)];;
Strict Type Safety
Even though you can mix items, TinyPanda keeps track of exactly what type each item is. It never guesses or accidentally changes a type.
A integer like 99 is not the same thing as a string "99". Because TinyPanda checks both the value and the type, they will never match by accident!
bamboo list1 = [99, "10", true, "aprim"];
echoln(whatIs(list1[0])) // Outputs: INT
echoln(whatIs(list1[1])) // Outputs: STRING
echoln(contains(list1, 10)) // Outputs: false
echoln(contains(list1, "99")) // Outputs: false
Check out all available list builtins here.