summaryrefslogtreecommitdiff
path: root/examples/synonyms.fy
blob: 0dd30f5151ff8e1f42da4732b9f166649f70f6d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#*
 * Examples of how to use synonyms
 *#

# Create a variable foo, and bar is a synonym for foo
my foo = "foo";
my bar = \foo;

# Reset the value of foo
foo = "bar";

# The synonym variable should now also set to "bar"
assert "bar" == say bar;

# Create a new procedure baz
proc baz { 
	say "I am baz";
}

# Make a synonym baz, and undefine baz
my bay = \baz;

# Should be the num of syms for the same value
assert 2 == syms baz;
assert 2 == syms bay;
undef baz;
assert 1 == syms bay;

# bay still has a reference of the original procedure baz
bay; # this prints aut "I am baz" 

assert 0 == defined baz;
assert 1 == defined bay;

# This removes the procedure from memory
undef bay;