start: say "In CSML you have two types of memory !" goto local_variable local_variable: say "You have the local variable" say "Local variable can be express as 'do my_value as my_var'" say "the variable 'identifier will be accesible only inside the current step'" do my_var = 42 say "This is the value of my_var: {{ my_var }}" say "You can assign anything to a variable" do {} as my_obj do [] as my_vec do "" as my_str do 42.42 as my_float do 42 as my_int do true as my_boolean do NULL as my_null do my_var = {} do my_var.insert("my_obj", my_obj) do my_var.insert("my_vec", my_vec) do my_var.insert("my_str", my_str) do my_var.insert("my_float", my_float) do my_var.insert("my_int", my_int) do my_var.insert("my_boolean", my_boolean) do my_var.insert("my_null", my_null) foreach (key) in my_var.keys() { do result = "{{key}}: {{ my_var[key]}}" say result } say "You can also assign operation to variable" do 42 + "42" as my_operation say "my_operation: {{my_operation}}" goto global_variable global_variable: say "And you have the global variable" say "Let's just see that I know what I'm talking about" say "If I want to print the value of my_var, assignated at lines 12, what would be the output ?" say "my_var: {{my_var}} of type {{my_var.type_of()}}" say "Yes it is null, this memory doens't exist anymore !" say "Now if you want to assign a variable a value that will exist during the whole lifetime of the process" say "You have to use the 'remember' keyword" remember my_var = 42 say "The value of my_var is {{my_var}}" goto final final: say "Now that I'm into a new flow" say "I can still access the memory of my_var" say "The value of my_var is ..." say "{{my_var}}" say "Hoora, now you know how the memory in CSML works !" goto end