func gao(f, a, b) {
    l = a.size();
    res = @Array<#Int#>;
    for (i = 0; i < l; i=i+1) {
        res.push_back(f(a.get_at(i), b.get_at(i)));
    }
    return res;
}

func main() {
    a1 = @Array<#Int#>;
    a2 = @Array<#Int#>;
    for (i = 0; i < 10; i=i+1) {
        a1.push_back(i);
        a2.push_back(i);
    }
    c = (x, y -> x * y);
    res = gao(c, a1,a2);
    res.push_vec(a1);
    l = res.size();
    for (i = 0; i < l; i=i+1) {
        print(res.get_at(i));
    }
    return 0;
}
