Choose the way to learn programming language Ya

Ya vs C++: Ya features with C++ counterparts. Simple Ya samples with comments are below.

Sample programs in programming language Ya

Simplest Hello World

\@HelloWorld.Ya
:@Std/StdIO.Ya

Print; "Hello World\n"


#include <stdio.h>
int main()
{	printf("Hello World\n");
	return 0;
}

\@HelloWorld.Ya} declares the module name; yes it's file name.
:@Std/StdIO.Ya} is ala #include <stdio.h>}
No function main} and so no ala return ...}; all statements out of functions are executed at program start in some order, yes, just as global variables initializers and then main} code.
No brackets (...)} for function args.
Uses function Print} which does the same as printf fprintf} but in Ya} world.
;} is arguments delimiter, instead of ,}.
And ;} just after Print} means empty ie default start arg, which specifies output file; by default to StdOut}.
No statement terminators used here: ;} in C}; .} in Ya}.

Expressions

\@Exs
1+2 *3
1+ 2*3
1+2*3+4
1+2* 3+4*5

A[1]
A[ 1 ]
A[ 1]

A[ H[1] ]
A[H[1]]


(1+2) *3
1+ (2*3)
((1+2)*3)+4
(1+2)* ((3+4)*5)

No operator priorities at all; Ya} uses spaces instead: closer operator signs have higher precedence.
At +2 *}: no space in +2} and 1 space in 2 *}: so +2) *}
At + 2*}: 1 space in + 2} and no space in 2*}: so + (2*}
The same no spaces at left and right of each operator + * +}; so the operators execute left to right; the rule is just to avoid extra spaces.
The only space divides whole expression into 2 parts: * 3+} leads to * (3+}; so at left is (1+2)* } and at right is * (3+4)}