Skip to content
/ tahu Public

Tahu programming language for general purpose easy to learning

License

Notifications You must be signed in to change notification settings

tahu-lang/tahu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

115 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tahu Programming Language

Quick Examples

Hello World

fn main() {
    println("Hello, World!")
}

Variables and Types

fn main() {
    // Immutable variable
    val name: string = "Tahu"

    // Mutable variable
    var age: int = 5
    age = 6 // Reassigning a mutable variable

    var port: int = 8080
    var is_running: bool = true
    
    // Type inference
    var message = "Server running on port ${port}"
    print(message)
}

Data Types

Primitive

i8;
i16;
i32;
i64;
isize;

u8;
u16;
u32;
u64;
usize;

f32;
f64;

char;
bool;
unit;

Composite

array

var arr = [1, 2, 3];

arr[0];

struct

struct Person {
    name: string
    age: int
}

var person = Person {
    name: "Tahu",
    age: 5
}

Control Flow

If-Else

fn main() {
    var condition = true;
    if condition {
        println("Condition is true")
    } else {
        println("Condition is false")
    }
}

While Loop

fn main() {
    var i = 0
    while i < 5 {
        println(i)
        i += 1
    }
}

Functions

Function Definition

fn add(a: int, b: int) int {
    return a + b
}

// fn with public visibility can access cross file
// math.tahu
pub fn sub(a: int, b: int) int {
    return a - b
}

// main.tahu
import math

fn main() {
    var result = sub(3, 4)
    print(result)
}

Function Calling

fn main() {
    var result = add(3, 4)
    print(result)
}

Extern Function

extern fn prints(msg: string, len: usize) unit;

fn print(msg: string) unit {
    prints(msg, msg.len)
}

Installation

TODO

Getting Started

TODO

About

Tahu programming language for general purpose easy to learning

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published