Procedures, or procs, are declared using the
proc keyword. These are also known by other names in other languages, such as functions or methods. Its arguments come after in parentheses. DM does not have a return type annotation like other languages.
If you are not declaring (therefore, you would be overriding) a new proc, you omit the
proc keyword. See:
return statement can be used to return a value from within the proc, even from inside loops or if statements.
Let's rewrite FizzBuzz using a proc!
// Unlike C/C++, there's no restriction on the order of function definitions /mob/Login() fizzbuzz_to(100) // Returns a boolean value /proc/is_divisible_by(lhs, rhs) // Edge case, early return if (rhs == 0) return FALSE return (lhs % rhs == 0) /proc/fizzbuzz(n) if (is_divisible_by(n, 15)) world << "fizzbuzz" else if (is_divisible_by(n, 3)) world << "fizz" else if (is_divisible_by(n, 5)) world << "buzz" else world << "[n]" /proc/fizzbuzz_to(n) for (var/p in 1 to n+1) fizzbuzz(p)