mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-16 06:05:58 -06:00
362 lines
No EOL
4 KiB
Text
362 lines
No EOL
4 KiB
Text
Sort()
|
|
{
|
|
x = "ahoj kamarade to je ale hlina";
|
|
LOG(sort(x));
|
|
LOG(order(x));
|
|
LOG(reverse(x));
|
|
}
|
|
|
|
Subscript(x)
|
|
{
|
|
LOG(@(x) { return 2 * x; } (x));
|
|
}
|
|
|
|
Counter(x = 0)
|
|
{
|
|
.i = x;
|
|
|
|
#.Get() {
|
|
return .i;
|
|
}
|
|
|
|
#.Next() {
|
|
.i++;
|
|
}
|
|
}
|
|
|
|
Val(x)
|
|
{
|
|
return 3 * x;
|
|
}
|
|
|
|
Defaults(x = Val(0), y = Val(1))
|
|
{
|
|
LOG("params " + to_string(x) + ", " + to_string(y));
|
|
}
|
|
|
|
Defs()
|
|
{
|
|
Defaults();
|
|
Defaults("p1");
|
|
Defaults("p2", "p3");
|
|
}
|
|
|
|
Object()
|
|
{
|
|
Counter()! x;
|
|
LOG(x.Get());
|
|
x.Next();
|
|
LOG(x.Get());
|
|
x.Next();
|
|
LOG(x.Get());
|
|
}
|
|
|
|
ForIn()
|
|
{
|
|
x.alfa = "ahoj";
|
|
x.beta = "kamarade";
|
|
|
|
for(j = 2; j--;) {
|
|
for(i in x) {
|
|
LOG(i);
|
|
LOG([ x[i] ]);
|
|
}
|
|
x = "Hello world";
|
|
}
|
|
}
|
|
|
|
sum(...)
|
|
{
|
|
sum = 0;
|
|
for(i in argv)
|
|
sum += argv[i];
|
|
return sum;
|
|
}
|
|
|
|
main1()
|
|
{
|
|
Object();
|
|
}
|
|
|
|
as_string(n)
|
|
{
|
|
r = [];
|
|
while(n) {
|
|
r = [ n % 10 + '0' ] + r;
|
|
n = int(n / 10);
|
|
}
|
|
return r;
|
|
}
|
|
|
|
sieve()
|
|
{
|
|
N = 100000;
|
|
sieve = N * [1];
|
|
for(i = 2; i < N; i++) {
|
|
if(sieve[i]) {
|
|
print(as_string(i) + "\n");
|
|
for(j = i; j < N; j += i)
|
|
sieve[j] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
bench()
|
|
{
|
|
N = 10;
|
|
M = 6144;
|
|
m = [];
|
|
m[M] = 0;
|
|
for(j = 0; j < N; j++)
|
|
for(i = 0; i < M; i++)
|
|
m[i] = i;
|
|
}
|
|
|
|
fn1(x)
|
|
{
|
|
LOG("fn1: " + to_string(x));
|
|
return x;
|
|
}
|
|
|
|
fn2(x)
|
|
{
|
|
LOG("fn2: " + to_string(x));
|
|
return x;
|
|
}
|
|
|
|
skipexp()
|
|
{
|
|
b = 1;
|
|
LOG(b ? fn1("foo") : fn2("bar"));
|
|
LOG(fn1(1) || fn2(1) || fn1(2) ? "TRUE" : "FALSE");
|
|
LOG(fn1(1) && fn2(0) && fn1(2) ? "TRUE" : "FALSE");
|
|
LOG((b ? fn1(1) : fn1(20)) + 10);
|
|
}
|
|
|
|
main()
|
|
{
|
|
skipexp();
|
|
}
|
|
|
|
Test() {
|
|
LOG(@(x) { return 2 * x; } (20));
|
|
|
|
:Counter = @(x) {
|
|
.i = x;
|
|
.Get = @() { return .i; };
|
|
.Next = @() { .i++; };
|
|
};
|
|
|
|
a.init = :Counter;
|
|
a.init(10);
|
|
|
|
LOG(a.Get());
|
|
a.Next();
|
|
LOG(a.Get());
|
|
|
|
Counter(10)! q;
|
|
|
|
LOG(q.Get());
|
|
q.Next();
|
|
LOG(q.Get());
|
|
|
|
|
|
LOG(5 * "ahoj");
|
|
LOG(50 * "ahoj");
|
|
LOG(0 * "ahoj");
|
|
LOG(-1 * "ahoj");
|
|
LOG(7 * "ahoj");
|
|
|
|
text = "0123456789";
|
|
for(i in text)
|
|
LOG(i);
|
|
x = {};
|
|
|
|
x.alfa = void;
|
|
|
|
for(i in x)
|
|
LOG(i);
|
|
|
|
for(i = 0; i < 10; i++)
|
|
LOG(i);
|
|
|
|
return;
|
|
|
|
|
|
o.x = 1;
|
|
o.get = @() { return .x; };
|
|
o.next = @() { .x++; };
|
|
|
|
w = o;
|
|
|
|
LOG(w.get());
|
|
w.next();
|
|
LOG(w.get());
|
|
|
|
|
|
text = "0123456789";
|
|
text.text = text;
|
|
text[] = text;
|
|
LOG(text);
|
|
|
|
return;
|
|
|
|
x = {};
|
|
x.x;
|
|
|
|
:test = @() {
|
|
return @() { return 500; };
|
|
};
|
|
|
|
LOG(:test);
|
|
LOG(test());
|
|
LOG(test()());
|
|
|
|
x.x;
|
|
|
|
alfa = @(x) { return 3 * x; };
|
|
|
|
LOG(alfa(123));
|
|
|
|
|
|
fn Counter(x) {
|
|
.i = 0;
|
|
.next = @() {
|
|
i++;
|
|
};
|
|
.get = @() {
|
|
return i;
|
|
};
|
|
deffn .get() {
|
|
return i;
|
|
}
|
|
}
|
|
|
|
Counter:: x(10);
|
|
|
|
fn Counter() {
|
|
x.i = 0;
|
|
x.next = @() {
|
|
.i++;
|
|
};
|
|
x.get = @() {
|
|
return i;
|
|
};
|
|
return x;
|
|
}
|
|
|
|
text[] = 'a';
|
|
text << "qwert";
|
|
|
|
LOG(text);
|
|
|
|
LOG(text[3,]);
|
|
|
|
LOG(text[:3]);
|
|
|
|
LOG(text[1, 3]);
|
|
LOG(text[1:3]);
|
|
LOG(text[,3]);
|
|
LOG(text[3:]);
|
|
|
|
text[-2] = 'x';
|
|
LOG(text);
|
|
|
|
text = "Hello world";
|
|
LOG([ text[-1] ]);
|
|
LOG([ text[-2] ]);
|
|
LOG([ text[-3] ]);
|
|
|
|
s.a = 123;
|
|
LOG(s.a);
|
|
|
|
x = [1, 2, 3];
|
|
x[1] = "ahoj";
|
|
LOG(x);
|
|
x[1][1] = 'x';
|
|
LOG(x);
|
|
|
|
b.alfa = x;
|
|
LOG(b);
|
|
|
|
b.beta.gama = b;
|
|
LOG(b);
|
|
|
|
x = "super";
|
|
x[] = 'x';
|
|
LOG(x);
|
|
x[] = "xxx";
|
|
LOG(x);
|
|
|
|
for(i = 0; i < 10; i++)
|
|
x = x + x;
|
|
|
|
:fact = @(x) { if(x > 1) return x * fact(x - 1); return 1; };
|
|
|
|
for(i = 0; i < 30; i++)
|
|
LOG(fact(i));
|
|
|
|
LOG(x);
|
|
|
|
LOG("Test!");
|
|
x = "beta";
|
|
LOG(x);
|
|
x = 123;
|
|
LOG(x);
|
|
x++;
|
|
LOG(x);
|
|
x *= 3.1242345;
|
|
LOG(x);
|
|
x = [1, 2, 3, 4, 5];
|
|
LOG(x);
|
|
x = x + x;
|
|
LOG(x);
|
|
LOG(x[3]);
|
|
LOG(x[5]);
|
|
x = { "a":1, "b":2 };
|
|
LOG(x);
|
|
LOG(x["b"]);
|
|
LOG(x["bb"]);
|
|
return;
|
|
|
|
x = "beta";
|
|
x << "alfa";
|
|
|
|
x = "hello";
|
|
|
|
x += [ x ];
|
|
x += x;
|
|
|
|
x << x;
|
|
|
|
x = x;
|
|
|
|
print(x);
|
|
|
|
:result = x;
|
|
|
|
x = [ 123 ];
|
|
|
|
x << [ x ];
|
|
|
|
x = x;
|
|
|
|
x.alfa.beta = x;
|
|
|
|
return;
|
|
|
|
x[1:7] = []
|
|
x[1,7] = []
|
|
|
|
//y.alfa = y;
|
|
|
|
x[4] = x;
|
|
|
|
//x.alfa.beta = x;
|
|
|
|
fn Point(x, y) {
|
|
return { 'x':x, 'y':y, };
|
|
}
|
|
|
|
x["alfa"] = 12;
|
|
} |