✨ add concat for vector
This commit is contained in:
parent
7e72661332
commit
32e23741eb
|
@ -322,6 +322,19 @@ inline void vm::o_sub() {op_calc(-);}
|
|||
inline void vm::o_mul() {op_calc(*);}
|
||||
inline void vm::o_div() {op_calc(/);}
|
||||
inline void vm::o_lnk() {
|
||||
if (ctx.top[-1].type==vm_vec && ctx.top[0].type==vm_vec) {
|
||||
ngc.temp = ngc.alloc(vm_vec);
|
||||
for(auto i : ctx.top[-1].vec().elems) {
|
||||
ngc.temp.vec().elems.push_back(i);
|
||||
}
|
||||
for(auto i : ctx.top[0].vec().elems) {
|
||||
ngc.temp.vec().elems.push_back(i);
|
||||
}
|
||||
ctx.top[-1] = ngc.temp;
|
||||
ngc.temp = nil;
|
||||
--ctx.top;
|
||||
return;
|
||||
}
|
||||
ctx.top[-1] = ngc.newstr(ctx.top[-1].tostr()+ctx.top[0].tostr());
|
||||
--ctx.top;
|
||||
}
|
||||
|
|
|
@ -45,12 +45,12 @@ var var_sort=func(){
|
|||
j-=1;
|
||||
}
|
||||
vec[i]=tmp;
|
||||
quick_sort_core(vec,left,i-1,cmp);
|
||||
quick_sort_core(vec,i+1,right,cmp);
|
||||
quick_sort_core(vec,left,i-1);
|
||||
quick_sort_core(vec,i+1,right);
|
||||
return nil;
|
||||
}
|
||||
return func(vec){
|
||||
quick_sort_core(vec,0,size(vec)-1,cmp);
|
||||
quick_sort_core(vec,0,size(vec)-1);
|
||||
return nil;
|
||||
}
|
||||
}();
|
|
@ -1,9 +1,10 @@
|
|||
import.std.sort;
|
||||
|
||||
var vec=[];
|
||||
setsize(vec, 1e4);
|
||||
rand(time(0));
|
||||
for(var i=0;i<1e4;i+=1)
|
||||
append(vec,int(rand()*1e5));
|
||||
vec[i] = int(rand()*1e5);
|
||||
sort(vec);
|
||||
for(var i=1;i<1e4;i+=1) {
|
||||
if (vec[i]<vec[i-1]) {
|
||||
|
@ -20,7 +21,7 @@ var test=func(n){
|
|||
var ts=maketimestamp();
|
||||
ts.stamp();
|
||||
var_sort(a);
|
||||
println("[time] ",str(n)," in ",ts.elapsedMSec()/1000," sec (value)");
|
||||
println("[time] ",str(n)," in ",ts.elapsedMSec()/1000," sec (direct cmp)");
|
||||
|
||||
var a=[];
|
||||
setsize(a,n);
|
||||
|
@ -29,7 +30,7 @@ var test=func(n){
|
|||
}
|
||||
ts.stamp();
|
||||
sort(a);
|
||||
println("[time] ",str(n)," in ",ts.elapsedMSec()/1000," sec (lambda)");
|
||||
println("[time] ",str(n)," in ",ts.elapsedMSec()/1000," sec (lambda cmp)");
|
||||
}
|
||||
|
||||
for(var i=1000;i<1e6;i*=10){
|
||||
|
|
|
@ -245,6 +245,7 @@ var next_to_last = list1[-2];
|
|||
# concatenate vectors:
|
||||
#
|
||||
var joined_list = [1, 2, 3] ~ [4, 5, 6];
|
||||
print(joined_list, "\n");
|
||||
|
||||
###
|
||||
### Now some fun examples:
|
||||
|
|
|
@ -229,3 +229,5 @@ for(var a=0;a<16;a+=1) {
|
|||
println("temp^=0x"~h[a]~" -> 0x",h[temp^=a]," temp&=0x"~h[a]~" -> 0x",h[temp&=a]," temp|=0x"~h[a]~" -> 0x",h[temp|=a]);
|
||||
}
|
||||
}
|
||||
|
||||
print([0, 1, 2]~[3, 4, 5], "\n");
|
Loading…
Reference in New Issue