Sandwich Devlog 3: Function Junction
Today, I added *functions!* functions are a neat little tool that let you "pipe" math operation outputs into other instructions.
For example, you could assign the output to a variable, like below:
#Declare a function
fxa3-3
#Call the function and assign it to variable
lv*x
#will print out 6
p$v
Or you could print it out directly:
#Declare a function
fxs30-3
#Call it and print it out
#Will print out 27
p*x
You can also use variables *inside* a function, like so:
#Declare a variable
lv3
#Declare a function that will use the variable
fxs30-$v
#Prints out 27
p*x
Note that functions will only get evaluated *when they're called*. This means that if you reassign the variable `v` in between the function declaration and the function call, the function will use the *new* value of the variable.
Also, functions are *re-evaluated for each call*. So if they depend on an outside variable and the variable changes frequently, the result of the function will also change frequently.
Nested function calls also work:
#Declare a function
fxa2-2
#Declare a function that calls the other one
fya*x-4
#Will print out 8
p*y
Also note that the only operations you can perform inside a function are the math functions, which are `a`, `s`, `m`, and `d`.
The code is up on [tildegit](
https://tildegit.org/karx/sandwich), so clone a copy and get started with sandwich!
tags: sandwich, rust, programming, devlog