Skip to content
लिपि lipi

उदाहरण · Examples

Programs to read and run

Each one fits on a screen. Open any of them in the playground to change it and see what happens.

Namaste

नमस्ते namaste.lip

Variables, a function and a yadi / natra. The program that started Lipi.

rakha naam = "Ram";
bhana("Namaste, " + naam);

kaam jod(a, b) {
  farkau a + b;
}

yadi (jod(2, 3) > 4) {
  bhana("thulo!");
} natra {
  bhana("sano");
}

Output

›Namaste, Ram

›thulo!

Open in the playground

Fibonacci

फिबोनाची fibonacci.lip

A function that calls itself. Each number is the sum of the two before it.

// fib(n) = fib(n - 1) + fib(n - 2)
kaam fib(n) {
  yadi (n < 2) {
    farkau n;
  }
  farkau fib(n - 1) + fib(n - 2);
}

bhana("fib(10) =", fib(10));
bhana("fib(20) =", fib(20));

Output

›fib(10) = 55

›fib(20) = 6765

Open in the playground

Closures

गुणक gunak.lip

A kaam can return another kaam, and the inner one remembers x.

kaam gunak(x) {
  farkau kaam(y) {
    farkau x * y;
  };
}

rakha dobar = gunak(2);
rakha tebar = gunak(3);

bhana("dobar(21) =", dobar(21));
bhana("tebar(7)  =", tebar(7));

Output

›dobar(21) = 42

›tebar(7) = 21

Open in the playground

Exam grade

नतिजा natija.lip

Nested yadi / natra to turn marks into a division.

kaam natija(ank) {
  yadi (ank > 79) {
    farkau "Distinction";
  } natra {
    yadi (ank > 59) {
      farkau "First division";
    } natra {
      yadi (ank > 39) {
        farkau "Pass";
      } natra {
        farkau "Fail";
      }
    }
  }
}

bhana("Sita:", natija(88));
bhana("Hari:", natija(64));
bhana("Gita:", natija(35));

Output

›Sita: Distinction

›Hari: First division

›Gita: Fail

Open in the playground

Countdown

गन्ती ganti.lip

Lipi has no loops yet, so recursion does the counting.

kaam ganti(n) {
  yadi (n > 0) {
    bhana(n);
    ganti(n - 1);
  } natra {
    bhana("Suru!");
  }
}

ganti(5);

Output

›5

›4

›3

›2

›1

›Suru!

Open in the playground

Functions as values

दुई पटक dui-patak.lip

Pass a kaam into another kaam, like any other value.

kaam duiPatak(f, x) {
  farkau f(f(x));
}

rakha thapDas = kaam(n) { farkau n + 10; };
rakha dobar = kaam(n) { farkau n * 2; };

bhana(duiPatak(thapDas, 5));
bhana(duiPatak(dobar, 5));

Output

›25

›20

Open in the playground

Devanagari strings

देवनागरी devanagari.lip

Strings can hold Devanagari. lambai counts letters, not bytes.

rakha naam = "सीता";
bhana("नमस्ते, " + naam + "!");

rakha shahar = "काठमाडौं";
bhana(shahar, "ma", lambai(shahar), "akshar chhan");

Output

›नमस्ते, सीता!

›काठमाडौं ma 8 akshar chhan

Open in the playground

Galti demo

गल्ती galti.lip

A program with a mistake on purpose. Run it, read the Galti, then fix it.

rakha naam = "Sita";
rakha umer = 21;
bhana("Namaste, " + naam)

// Line 3 is missing a ';'. Add it and run again.
// Then try this line:  bhana(naam + umer);

Output

Galti: line 3 ma semicolon birsiyo

Open in the playground