Tutorial — Learn by Doing

A step-by-step guide to master Rampyaaryan. Each lesson builds on the previous one. Type along!

Lesson 1: Your First Program

Create a file called pehla.ram:

likho "🙏 Namaste, Duniya!"

Run it:

rampyaaryan pehla.ram

Output:

🙏 Namaste, Duniya!
Done! You just wrote your first Rampyaaryan program!

Lesson 2: Variables — maano

Use maano (meaning “assume/let”) to create variables:

maano naam = "Aryan"
maano umr = 20
maano chhatra = sach

likho naam       # Aryan
likho umr        # 20
likho chhatra    # sach

Variable naming rules: Start with a letter or underscore. Can contain letters, numbers, underscores. Case-sensitive (naamNaam).


Lesson 3: Data Types

Rampyaaryan has 7 core data types:

# Numbers (sankhya)
maano purn_sankhya = 42
maano dashmlav = 3.14

# Strings (shabd)
maano sandesh = "Hello!"

# Booleans
maano haan = sach         # true
maano nahi_val = jhooth   # false

# Null
maano kuch_nahi = khali

# Lists (suchi)
maano rang = ["lal", "hara", "neela"]

# Functions
kaam namaste() { likho "Namaste!" }

# Maps/Dictionaries
maano student = {"naam": "Aryan", "umar": 20}

Check type with prakar():

likho prakar(42)         # sankhya
likho prakar("hello")    # shabd
likho prakar(sach)       # boolean
likho prakar([1,2])      # suchi

Lesson 4: Arithmetic

maano a = 10
maano b = 3

likho a + b      # 13  (addition)
likho a - b      # 7   (subtraction)
likho a * b      # 30  (multiplication)
likho a / b      # 3.33 (division)
likho a % b      # 1   (modulo)

# String concatenation
likho "Hello " + "World"  # Hello World

# Repeat string
likho dohrao("ha", 3)    # hahaha

Lesson 5: User Input — poocho

maano naam = poocho("Aapka naam kya hai? ")
likho "Namaste, " + naam + "!"

maano umr = sankhya(poocho("Umr batao: "))
likho format("Aap {} saal ke ho!", umr)

Lesson 6: Conditions — agar / warna

maano marks = 85

agar marks >= 90 {
    likho "Grade: A+"
} warna agar marks >= 80 {
    likho "Grade: A"
} warna agar marks >= 70 {
    likho "Grade: B"
} warna {
    likho "Grade: C"
}

Operators

ComparisonLogical
==   Equalaur   AND
!=   Not equalya   OR
< > <= >=nahi   NOT
maano umr = 25
maano license = sach

agar umr >= 18 aur license {
    likho "Gaadi chala sakte ho!"
}

Lesson 7: Loops

While Loop — jab tak

maano i = 1
jab tak i <= 5 {
    likho format("Ginti: {}", i)
    i = i + 1
}

For Loop — har

har i = 1; i <= 10; i = i + 1 {
    likho format("{} x 5 = {}", i, i * 5)
}

Loop Control

har i = 1; i <= 10; i = i + 1 {
    agar i == 5 { agla }    # skip 5
    agar i == 8 { ruko }    # stop at 8
    likho i
}
# Output: 1 2 3 4 6 7

Lesson 8: Functions — kaam

kaam namaste(naam) {
    likho format("Namaste, {}!", naam)
}

namaste("Aryan")     # Namaste, Aryan!

Return values — wapas do

kaam jod(a, b) {
    wapas do a + b
}

maano result = jod(10, 20)
likho result         # 30

Recursion

kaam factorial(n) {
    agar n <= 1 { wapas do 1 }
    wapas do n * factorial(n - 1)
}

likho factorial(10)  # 3628800

Closures

kaam counter() {
    maano count = 0
    kaam badhao() {
        count = count + 1
        wapas do count
    }
    wapas do badhao
}

maano c = counter()
likho c()    # 1
likho c()    # 2
likho c()    # 3

Lesson 9: Lists

maano fruits = ["seb", "kela", "aam"]
likho fruits[0]      # seb
likho fruits[-1]     # aam (last)

# Modify
fruits[0] = "santara"
joodo(fruits, "anaar")   # append
nikalo(fruits)            # remove last

# Operations
maano nums = [3, 1, 4, 1, 5, 9]
likho lambai(nums)       # 6
likho jod(nums)          # 23
likho ausat(nums)        # 3.83
likho kram(nums)         # sorted
likho ulta(nums)         # reversed
likho anokha(nums)       # unique
likho shamil(nums, 5)   # sach

Building lists dynamically

maano squares = []
har i = 1; i <= 10; i = i + 1 {
    joodo(squares, i * i)
}
likho squares    # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Lesson 10: String Magic

maano s = "  Namaste Duniya!  "

likho saaf(s)                    # "Namaste Duniya!"
likho bade_akshar("hello")       # "HELLO"
likho chhote_akshar("HELLO")     # "hello"

# Find & Replace
likho dhundho("hello world", "world")  # 6
likho badlo("hello", "ell", "ELL")    # "hELLo"

# Split & Join
maano parts = todo("a,b,c", ",")
likho jodo_shabd(parts, " | ")      # "a | b | c"

# Formatting
likho format("{} is {} years old", "Ram", 20)

# Substring
likho kato("Namaste", 0, 3)         # "Nam"

Lesson 11: Math & Science

likho abs_val(-42)       # 42
likho sqrt_val(144)      # 12
likho power_val(2, 10)   # 1024
likho gol(3.7)            # 4

# Trigonometry
likho sin_val(PI() / 2)  # 1
likho cos_val(0)          # 1

# Number theory
likho gcd(48, 18)        # 6
likho lcm(12, 8)         # 24
likho factorial(10)      # 3628800
likho kya_prime(17)      # sach
likho fib(10)             # 55

# Random
likho yaadrchik()         # 0.xxxx
likho yaadrchik(1, 100)  # random 1-100

Lesson 12: File Operations

# Write a file
likho_file("notes.txt", "Line 1\n")

# Append
joodo_file("notes.txt", "Line 2\n")

# Check existence
agar file_hai("notes.txt") {
    likho "File exists!"
}

# Read
maano content = padho_file("notes.txt")
likho content

Lesson 13: Practical Projects

Project 1: Grade Calculator

kaam grade(marks) {
    agar marks >= 90 { wapas do "A+" }
    agar marks >= 80 { wapas do "A" }
    agar marks >= 70 { wapas do "B" }
    agar marks >= 60 { wapas do "C" }
    wapas do "F"
}

maano scores = [92, 85, 73, 61, 45]
har i = 0; i < lambai(scores); i = i + 1 {
    likho format("{} = Grade {}", scores[i], grade(scores[i]))
}

Project 2: Fibonacci Generator

kaam fibonacci_list(n) {
    maano result = [0, 1]
    har i = 2; i < n; i = i + 1 {
        maano next = result[i-1] + result[i-2]
        joodo(result, next)
    }
    wapas do result
}

likho fibonacci_list(15)

Lesson 14: Advanced — Closures

Functions in Rampyaaryan are first-class values. They can capture variables from their enclosing scope.

kaam make_adder(x) {
    kaam adder(y) {
        wapas do x + y
    }
    wapas do adder
}

maano add5 = make_adder(5)
maano add10 = make_adder(10)

likho add5(3)     # 8
likho add10(3)    # 13

Lesson 15: Higher-Order Functions (Basics)

Pass functions as arguments to other functions:

kaam apply(fn, value) {
    wapas do fn(value)
}

kaam double(x) { wapas do x * 2 }
kaam square(x) { wapas do x * x }

likho apply(double, 5)   # 10
likho apply(square, 5)   # 25

Lesson 16: Maps & Dictionaries

# Create map with literal syntax
maano student = {"naam": "Arjun", "umar": 20, "city": "Delhi"}

# Access & modify
likho student["naam"]          # Arjun
student["marks"] = 95         # add new key

# Map functions
likho chabi(student)            # keys list
likho mulya(student)            # values list
likho map_hai(student, "naam")  # sach
likho map_get(student, "phone", "N/A")  # "N/A"

# Merge maps
maano extra = {"email": "a@b.com"}
maano full = map_milao(student, extra)

# Delete key
map_hatao(student, "city")

Lesson 17: Bitwise Operations

maano a = 12    # 1100 in binary
maano b = 10    # 1010 in binary

likho a & b     # AND: 8  (1000)
likho a | b     # OR:  14 (1110)
likho a ^ b     # XOR: 6  (0110)
likho ~a        # NOT: -13
likho a << 2   # Left shift: 48
likho a >> 1   # Right shift: 6

# Base conversion
likho hex_shabd(255)    # "ff"
likho oct_shabd(255)    # "377"
likho bin_shabd(255)    # "11111111"

Lesson 18: Higher-Order Deep Dive

kaam square(x) { wapas do x * x }
kaam is_even(x) { wapas do x % 2 == 0 }
kaam add(a, b) { wapas do a + b }

maano nums = [1, 2, 3, 4, 5]

# Map: apply function to each element
likho naksha(nums, square)          # [1, 4, 9, 16, 25]

# Filter: keep elements passing test
likho chhaano(nums, is_even)        # [2, 4]

# Reduce: fold into single value
likho ikkatha(nums, add, 0)         # 15

# All/Any truthiness
likho sab([1, 2, 3])               # sach
likho koi([0, 0, 1])               # sach

# Zip two lists
likho jodi_banao([1,2], ["a","b"])  # [[1,"a"],[2,"b"]]

# Enumerate
likho ginati_banao(["a","b","c"])  # [[0,"a"],[1,"b"],[2,"c"]]

Lesson 19: Date, Time & System

# Date
likho format("{}-{}-{}", saal(), mahina(), din())

# Time
likho format("{}:{}:{}", ghanta(), minute(), second())

# Day of week
maano days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
likho "Today: " + days[hafta_din()]

# System
likho platform()        # "windows" / "linux" / "macos"
likho taareekh()        # "2026-03-08"
likho waqt()            # "14:30:45"
likho timestamp()       # Unix timestamp

# Benchmarking
maano start = ghadi()
# ... some work ...
likho format("Time: {}s", ghadi() - start)