Tutorial — Learn by Doing
A step-by-step guide to master Rampyaaryan. Each lesson builds on the previous one. Type along!
Table of Contents
- Your First Program
- Variables —
maano - Data Types
- Arithmetic
- User Input —
poocho - Conditions —
agar / warna - Loops —
jab takandhar - Functions —
kaam - Lists —
suchi - String Magic
- Math & Science
- File Operations
- Practical Projects
- Advanced: Closures
- Advanced: Higher-Order Functions
- Maps & Dictionaries
- Bitwise Operations
- Higher-Order Deep Dive
- Date, Time & System
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 (naam ≠ Naam).
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
| Comparison | Logical |
|---|---|
== Equal | aur AND |
!= Not equal | ya 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)