###### tags: `Guide To Contibuting` # Basic Syntax BYOND does not use curly braces to section off functions or semicolons to section statements. Yeah, some of you will love this because you are lazy. I think this **is** lazy. In Java: ```java public class MyClass{ public static void function(){ for(int i = 0; i < 5; i++){ System.out.println(i); // 0, 1, 2, 3, 4 } } } ``` In BYOND: ```DM /datum/my_datum/proc/function() for(var/i in 0 to 4) world.log << i ``` Convenient, right? And it's faster! As seen here: ![forvariinn](https://file.house/zy7H.png) Code used for the test in a readable format: <https://pastebin.com/w50uERkG> ### Advanced topics if you're a nerd Yes, you can use {}'s and ;'s. Example: `#define ONE_LINE_FUNCTION for(var/i in 0 to 4){world.log<<i;other_function(i);}` Why is this useful? Sometimes when we want to avoid proc-call overhead in super-duper-very-critical high performance areas, we wrap functions into `#define`s. This is less readable, less debuggable, but hey, it's faster. `#define`'s are ALWAYS one line. If you use `\` to visually separate it to another line, it's still one line in the actual code, the compiler reads it as one line. That's when {}'s and ;'s are required. ## The `\` symbol `\` makes it so one line is continued on the next if put at the **very end** of a line after a space like this. ``` multi_line_statement = this && that || thing && thong || ayy && lmao \ hehe && hoho || funny_logic_variable ```