Products/ylang

ylang 0.0.3 - yet another programming language — retro, C-like, and Pythonic

swJman 2025. 11. 18. 02:54

일주일 만에 또 릴리즈. 신난다.

https://github.com/jman-9/ylang/releases/tag/v0.0.3

 

Release ylang 0.0.3 - yet another language · jman-9/ylang

yet another programming language — retro, C-like, and Pythonic Highlights Supported module system Added built-in modules: json, file, rand, math, sys Enhanced primitive modules See README.md fo...

github.com

 

큰 변화는 바로 모듈 시스템 제공이 되시겠다.

그러면서 빌트인 모듈도 몇개 제공하게 되었고, 이제 조금은 그럴 듯한 코딩을 해 볼만 하다.
아래 예시를 통해 부연을 대신하겠다.

println("=== string example ===");

a = "hello world";
println(a);
println(a.len());
println(a.find("world"));
println(a.substr(0, 5));

b = a.replace("world", "ylang");
println(b);

println("a b   c d".split());
println("apple,banana,,grape".split(","));

println("\n\n");
println("=== list-dict mixed example ===");

users = {
    'alice': [10, 20, 30],
    'bob': [5, 15, 25]
};

println(users.keys());

users['alice'].append(40);
println(users['alice']);

v = users['bob'].pop_back();
println(v);

include math;
include rand;
include sys;

fn main() {
	println("\n\n");
    println("=== Built-in Module Showcase ===");
    println('This example demonstrates how to use sys, rand, and math modules.');
	println();

    println("[1] System Information:");
    println("Executable: " + sys.executable);
    println("Arguments:  {sys.argv}");
	println();

    println("[2] Random Number Example:");
    rand.randomize_timer();
    r = rand.get(1, 10);
    println("Random number between 1 and 10: {r}");
	println();

    println("[3] Math Functions:");
    x = 1.57079632679; // ~ pi/2
    println("sin(pi/2) = {math.sin(x)}");
    println("sqrt(2)   = {math.sqrt(2.)}");
	println();
    println("=== End of Example ===");
}

 

아래는 위 코드를 직접 실행한 모습이다.