Ctrl+P again to print, arrows/tab to navigate results, enter to confirm

    Basic tips

    Importing

    Sequences

    For sequence holes, recursion can often be used to avoid imports altogether. Additionally, you can often terminate via error to save bytes. For instance, compare the following ways to print the first 50 perfect squares:

    (import std.List:*)(map(iota 1 50)(fun(n)(print(* n n)))) # 57 bytes, has import overhead
    (let f(fun(n)(or(print(* n n))(< 49n)(f(+ 1n)))))(f 1)    # 54 bytes, uses recursion
    (let f(fun(n)(f(+(or(print(* n n))(< 49n)n)1))))(f 1)     # 53 bytes, crashes because you can't add true to 1, saving a space
    (mut n 0)(while(> 50n){(set n(+ 1n))(print(* n n))})      # 52 bytes, while loop still has potential sometimes