💾 Archived View for tilde.team › ~karx › blog › sandwich-devlog-3-function-junction.md captured on 2022-06-04 at 01:37:29.
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
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