Introduction
Pakhi is a dynamically typed, general purpose programming language with Bangla alphabet written in rust.
Language basics
PrimitiveTypes
- _āĻ¸āĻāĻā§āĻ¯āĻž
- _āĻŦā§āĻ˛āĻŋā§āĻžāĻ¨
- _āĻ¸ā§āĻā§āĻ°āĻŋāĻ
- _āĻ˛āĻŋāĻ¸ā§āĻ
- _āĻ°ā§āĻāĻ°ā§āĻĄ
- _āĻĢāĻžāĻ
- _āĻļā§āĻ¨ā§āĻ¯
Variable declaration
āĻ¨āĻžāĻŽ āĻŽāĻžāĻ¸ = ā§§;
Print statement
āĻĻā§āĻāĻžāĻ āĻŽāĻžāĻ¸;
If-else statement
āĻ¯āĻĻāĻŋ āĻŽāĻžāĻ¸ == ā§§ {
āĻĻā§āĻāĻžāĻ "āĻāĻžāĻ¨ā§ā§āĻžāĻ°āĻŋ";
} āĻ
āĻĨāĻŦāĻž {
āĻĻā§āĻāĻžāĻ "āĻāĻžāĻ¨āĻž āĻ¨ā§āĻ";
}
List
āĻ¨āĻžāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž = [ā§§, ā§¨, ā§Š, ā§Ē, ā§Ģ];
āĻĻā§āĻāĻžāĻ āĻ¸āĻāĻā§āĻ¯āĻž[ā§Ļ];
Record
āĻ¨āĻžāĻŽ āĻ¤āĻĨā§āĻ¯ = @{
"āĻ¨āĻžāĻŽ" -> "āĻ¸āĻŋāĻĢāĻžāĻ¤",
"āĻŦā§āĻ¸" -> ā§Ēā§¨,
"āĻĢā§āĻ¨-āĻ¨āĻžāĻŽā§āĻŦāĻžāĻ°" -> ["ā§Ļā§§ā§ā§§ā§§ā§§ā§§ā§§ā§§ā§§ā§§", "ā§Ļā§§ā§ā§Šā§Šā§Šā§Šā§Šā§Šā§Šā§Š"],
};
āĻĻā§āĻāĻžāĻ āĻ¤āĻĨā§āĻ¯["āĻ¨āĻžāĻŽ"];
āĻĻā§āĻāĻžāĻ āĻ¤āĻĨā§āĻ¯["āĻŦā§āĻ¸"];
āĻĻā§āĻāĻžāĻ āĻ¤āĻĨā§āĻ¯["āĻĢā§āĻ¨-āĻ¨āĻžāĻŽā§āĻŦāĻžāĻ°"];
Loop statement
āĻ¨āĻžāĻŽ āĻ¸āĻāĻā§āĻ¯āĻž = [ā§§, ā§¨, ā§Š, ā§Ē, ā§Ģ];
āĻ¨āĻžāĻŽ āĻāĻ¨ā§āĻĄā§āĻā§āĻ¸ = ā§Ļ;
āĻ¨āĻžāĻŽ āĻ¯ā§āĻāĻĢāĻ˛ = ā§Ļ;
āĻ˛ā§āĻĒ {
āĻ¯āĻĻāĻŋ āĻāĻ¨ā§āĻĄā§āĻā§āĻ¸ > ā§Ē {
āĻĨāĻžāĻŽāĻžāĻ;
}
āĻ¯ā§āĻāĻĢāĻ˛ = āĻ¯ā§āĻāĻĢāĻ˛ + āĻ¸āĻāĻā§āĻ¯āĻž[āĻāĻ¨ā§āĻĄā§āĻā§āĻ¸];
āĻāĻ¨ā§āĻĄā§āĻā§āĻ¸ = āĻāĻ¨ā§āĻĄā§āĻā§āĻ¸ + ā§§;
} āĻāĻŦāĻžāĻ°;
_āĻĻā§āĻāĻžāĻ "āĻĢāĻ˛āĻžāĻĢāĻ˛ = ";
āĻĻā§āĻāĻžāĻ āĻ¯ā§āĻāĻĢāĻ˛;
Function declaration and function call
āĻĢāĻžāĻ āĻā§ā§(āĻ¸āĻāĻā§āĻ¯āĻž) {
āĻ¯āĻĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž % ā§¨ == ā§Ļ {
āĻĻā§āĻāĻžāĻ "āĻ¸āĻāĻā§āĻ¯āĻžāĻāĻŋ āĻā§ā§";
} āĻ
āĻĨāĻŦāĻž {
āĻĻā§āĻāĻžāĻ "āĻ¸āĻāĻā§āĻ¯āĻžāĻāĻŋ āĻŦāĻŋāĻā§ā§";
}
} āĻĢā§āĻ°āĻ¤;
āĻ¨āĻžāĻŽ āĻ¸ = ā§Ēā§¨;
āĻā§ā§(āĻ¸);
Importing modules
Every pakhi source file is a module. Module can be imported with realtive path or absolute path.
Module import syntax: āĻŽāĻĄāĻŋāĻāĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛-āĻ¨āĻžāĻŽ = "āĻŽāĻĄāĻŋāĻāĻ˛-āĻĒāĻžāĻĨ";
Module use syntax: āĻŽāĻĄāĻŋāĻāĻ˛-āĻ¨āĻžāĻŽ/āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ°-āĻĢāĻžāĻāĻļāĻ¨();
# āĻāĻāĻž āĻšāĻā§āĻā§ āĻ°ā§āĻ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĢāĻžāĻāĻ˛: main.pakhi #
āĻŽāĻĄāĻŋāĻāĻ˛ āĻŽā§āĻ¯āĻžāĻĨ = "math.pakhi";
āĻ¨āĻžāĻŽ āĻŦāĻžāĻšā§ = ā§Š;
āĻ¨āĻžāĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻĢāĻ˛ = āĻŽā§āĻ¯āĻžāĻĨ/āĻŦāĻ°ā§āĻ(āĻŦāĻžāĻšā§);
āĻĻā§āĻāĻžāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻĢāĻ˛;
#
āĻāĻāĻž āĻšāĻā§āĻā§ āĻŽā§āĻ¯āĻžāĻĨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĢāĻžāĻāĻ˛: math.pakhi
āĻ°ā§āĻ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ āĻĢāĻžāĻāĻ˛ āĻāĻ° āĻŦāĻ°ā§āĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°ā§āĻā§āĨ¤
#
āĻĢāĻžāĻ āĻŦāĻ°ā§āĻ(āĻ¸āĻāĻā§āĻ¯āĻž) {
āĻĢā§āĻ°āĻ¤ āĻ¸āĻāĻā§āĻ¯āĻž * āĻ¸āĻāĻā§āĻ¯āĻž;
} āĻĢā§āĻ°āĻ¤;
Comment block
# āĻāĻ āĻ˛āĻžāĻāĻ¨ āĻāĻŽā§āĻ¨ā§āĻ #
#
āĻŽāĻžāĻ˛āĻāĻŋ āĻ˛āĻžāĻāĻ¨
āĻāĻŽā§āĻ¨ā§āĻ
#
# āĻ°ā§āĻāĻ°ā§āĻĄ āĻĄāĻŋāĻā§āĻ˛ā§ā§āĻžāĻ° āĻāĻ°āĻž #
āĻ¨āĻžāĻŽ āĻ¤āĻĨā§āĻ¯ = @{
"āĻ¨āĻžāĻŽ" -> "āĻ¸āĻŋāĻĢāĻžāĻ¤",
"āĻŦā§āĻ¸" -> ā§Ēā§¨,
"āĻĢā§āĻ¨-āĻ¨āĻžāĻŽā§āĻŦāĻžāĻ°" -> ["ā§Ļā§§ā§ā§§ā§§ā§§ā§§ā§§ā§§ā§§ā§§", "ā§Ļā§§ā§ā§Šā§Šā§Šā§Šā§Šā§Šā§Šā§Š"],
};
#
āĻ°ā§āĻāĻ°ā§āĻĄ āĻĨā§āĻā§ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻ°
āĻ¨āĻžāĻŽ, āĻŦā§āĻ¸, āĻĢā§āĻ¨ āĻ¤āĻĨā§āĻ¯
āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻž
#
āĻĻā§āĻāĻžāĻ āĻ¤āĻĨā§āĻ¯["āĻ¨āĻžāĻŽ"];
āĻĻā§āĻāĻžāĻ āĻ¤āĻĨā§āĻ¯["āĻŦā§āĻ¸"];
āĻĻā§āĻāĻžāĻ āĻ¤āĻĨā§āĻ¯["āĻĢā§āĻ¨-āĻ¨āĻžāĻŽā§āĻŦāĻžāĻ°"];
Builtin functions and constants
- _āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋ
- _āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ
- _āĻ°āĻŋāĻĄ-āĻ˛āĻžāĻāĻ¨()
- _āĻ¸ā§āĻā§āĻ°āĻŋāĻ(āĻŽāĻžāĻ¨)
- _āĻ¸āĻāĻā§āĻ¯āĻž(āĻŽāĻžāĻ¨)
- _āĻ˛āĻŋāĻ¸ā§āĻ-āĻĒā§āĻļ(āĻ˛āĻŋāĻ¸ā§āĻ, āĻŽāĻžāĻ¨)
- _āĻ˛āĻŋāĻ¸ā§āĻ-āĻĒā§āĻļ(āĻ˛āĻŋāĻ¸ā§āĻ, āĻāĻ¨ā§āĻĄā§āĻā§āĻ¸, āĻŽāĻžāĻ¨)
- _āĻ˛āĻŋāĻ¸ā§āĻ-āĻĒāĻĒ(āĻ˛āĻŋāĻ¸ā§āĻ)
- _āĻ˛āĻŋāĻ¸ā§āĻ-āĻĒāĻĒ(āĻ˛āĻŋāĻ¸ā§āĻ, āĻāĻ¨ā§āĻĄā§āĻā§āĻ¸)
- _āĻ˛āĻŋāĻ¸ā§āĻ-āĻ˛ā§āĻ¨(āĻ˛āĻŋāĻ¸ā§āĻ)
- _āĻāĻ°āĻ°("āĻāĻ°āĻ° āĻŽā§āĻ¸ā§āĻ")
- _āĻ¸ā§āĻā§āĻ°āĻŋāĻ-āĻ¸ā§āĻĒā§āĻ˛āĻŋāĻ(string, split-by)
- _āĻ¸ā§āĻā§āĻ°āĻŋāĻ-āĻā§ā§āĻ¨(list-of-string, join-by)
- _āĻāĻžāĻāĻĒ(value)
- _āĻ°āĻŋāĻĄ-āĻĢāĻžāĻāĻ˛("āĻĢāĻžāĻāĻ˛-āĻĒā§āĻ¯āĻžāĻĨ")
- _āĻ°āĻžāĻāĻ-āĻĢāĻžāĻāĻ˛("āĻĢāĻžāĻāĻ˛-āĻĒā§āĻ¯āĻžāĻĨ", "āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ")
- _āĻĄāĻŋāĻ˛āĻŋāĻ-āĻĢāĻžāĻāĻ˛("āĻĢāĻžāĻāĻ˛-āĻĒā§āĻ¯āĻžāĻĨ", "āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ")
- _āĻ¨āĻ¤ā§āĻ¨-āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋ("āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋ-āĻĒā§āĻ¯āĻžāĻĨ")
- _āĻ°āĻŋāĻĄ-āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋ("āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋ-āĻĒā§āĻ¯āĻžāĻĨ")
- _āĻĄāĻŋāĻ˛āĻŋāĻ-āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋ("āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋ-āĻĒā§āĻ¯āĻžāĻĨ")
- _āĻĢāĻžāĻāĻ˛-āĻ¨āĻžāĻāĻŋ-āĻĄāĻžāĻāĻ°ā§āĻā§āĻāĻ°āĻŋ("āĻĒā§āĻ¯āĻžāĻĨ")
How to get pakhi on my computer?
- Download only pakhi-setup.exe from Assets
- Complete setup
- Write a pakhi program (Use any example from above)
- Open Pakhi and browse source file
- Run your program (extension should be .pakhi)
- To run pakhi program from cmd or powershell add
C:\Program Files\Pakhi\bin
to your path environment variable. Note: Bangla text will not show properly