Shallow clone (runtime function)

This commit is contained in:
Dmitry Boulytchev 2020-01-15 22:33:46 +03:00
parent a453b65fd3
commit 46dfd58bda
6 changed files with 31 additions and 7 deletions

View file

@ -0,0 +1,5 @@
Cloning int: 5
Cloning string: abc
Cloning array: [1, 2, 3, 4, 5]
Cloning sexp: A (1, 2, 3, 4, 5)
Cloning closure: address ok, 5, 6

View file

@ -0,0 +1,14 @@
fun f (x, y) {
fun () {x+y}
}
printf ("Cloning int: %d\n", clone (5));
printf ("Cloning string: %s\n", clone ("abc"));
printf ("Cloning array: %s\n", clone ([1, 2, 3, 4, 5]).string);
printf ("Cloning sexp: %s\n", clone (A (1, 2, 3, 4, 5)).string);
{
local c = f (5, 6), cc = clone (c);
printf ("Cloning closure: address %s, %d, %d\n", if cc[0] == c[0] then "ok" else "fail" fi, c[1], c[2])
}