$ cat init.Ρ...static struct { /* Keywords */Β char *name;Β int kval;} keywords [] = {Β "if",Β Β Β IF,Β "else",Β ELSE,Β "while", WHILE,Β "print", PRINT,Β 0, 0,};...ΠΠ»Ρ Π·Π°Π½Π΅ΡΠ΅Π½ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΊΠ» Π² ΡΡΠ½ΠΊΡΠΈΠΈ
init...for (i = 0; keywords[i].name; i++)Β install(keywords[i].name, keywords[i].kval, 0.0);...ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΠ½ΠΊΡΠΈΡΡ , ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΈΠΌΠ΅Π½, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΡΡ; Π² ΡΠ°ΠΉΠ»Π΅
code.cprexprprintprexpr() /* print numeric value */{Β Datum d;Β d = pop();Β printf ('"%.8g\n", d.val);}ΠΡΠΎ Π½Π΅ ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ°ΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. ΠΠ΄Π΅ΡΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ ΠΊ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ.
Π’Π΅ΠΏΠ΅ΡΡ
hoc5ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΊ
hoc5ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π² ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ· ΡΠ·ΡΠΊΠ° Π‘ΠΈ Π²ΠΈΠ΄Π°
+=*=++--&&||ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²
hoc5forbreakcontinueΠΠ°ΠΊ Π±Ρ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΡ ΠΈΠ»ΠΈ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ
hoc5ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ
hoc5ΠΠ΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ°ΠΉΠ», Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΅Π³ΠΎ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ΅Π»ΡΡ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ°ΠΊ Π±Ρ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ
hoc5hoc8.6 ΠΡΠ°ΠΏ 6: ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ; Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΈΠ· ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ Π·Π΄Π΅ΡΡ ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°ΡΡΠ°Π΅ΡΡΡ: Π² Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠ΅ΡΠ°ΡΠΈ ΡΡΡΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π°ΡΡΠ΄Ρ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ΅Π» ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΠ·ΡΠΊ
hoc6"-"hocΠ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π° Π²ΡΠ·ΠΎΠ²Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ. Π ΡΠΎ, ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ½ΡΠ΅ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 2, Π³Π΄Π΅ Π΄Π°Π΅ΡΡΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². Π’Π°ΠΊ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΠ΅ΡΠ°ΡΠΈ Π²ΡΠ΅Ρ ΡΠΈΡΠ΅Π» Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ, ΠΌΠ΅Π½ΡΡΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
$ cat fibproc fib() {Β a = 0Β b = 1Β while (b < $1) {Β print bΒ ΡΒ = bΒ b = a+bΒ a = ΡΒ }Β print "\n"}$ hoc6 fib -fib(1000)Β 1 1 2 3 5 8 13 21 34.55 89 144 233 377 610 987...ΠΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²: ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°
"-"ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ "ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π»":
$ cat facfunc fac() {Β if ($1 <= 0) return 1 else return $1 * fac($1-1)}$ hoc6 fac -fac(0)Β 1fac(7)Β 5040fac(10)Β 3628800...ΠΠ½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
$1