summaryrefslogtreecommitdiff
path: root/examples/synonyms.fy
diff options
context:
space:
mode:
Diffstat (limited to 'examples/synonyms.fy')
-rw-r--r--examples/synonyms.fy37
1 files changed, 37 insertions, 0 deletions
diff --git a/examples/synonyms.fy b/examples/synonyms.fy
new file mode 100644
index 0000000..0dd30f5
--- /dev/null
+++ b/examples/synonyms.fy
@@ -0,0 +1,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;
+