[38;2;122;122;122m# Fibonacci with memoization[0m
[38;2;230;71;71mmodule[0m [38;2;248;248;242mFib[0m

[38;2;230;71;71mconst[0m [38;2;248;248;242mcache[0m [38;2;248;248;242m=[0m [38;2;117;215;236mDict[0m[38;2;248;248;242m{[0m[38;2;117;215;236mInt[0m[38;2;248;248;242m,[0m[38;2;117;215;236mBigInt[0m[38;2;248;248;242m}[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m

[38;2;66;230;108m"""Calculate the nth Fibonacci number."""[0m
[38;2;230;71;71mfunction[0m [38;2;155;107;223mfib[0m[38;2;248;248;242m([0m[38;2;248;248;242mn[0m[38;2;248;248;242m::[0m[38;2;117;215;236mInt[0m[38;2;248;248;242m)[0m[38;2;248;248;242m::[0m[38;2;117;215;236mBigInt[0m
    [38;2;248;248;242mn[0m [38;2;248;248;242m<=[0m [38;2;228;243;74m1[0m [38;2;248;248;242m&&[0m [38;2;230;71;71mreturn[0m [38;2;155;107;223mBigInt[0m[38;2;248;248;242m([0m[38;2;248;248;242mn[0m[38;2;248;248;242m)[0m
    [38;2;155;107;223mget![0m[38;2;248;248;242m([0m[38;2;248;248;242mcache[0m[38;2;248;248;242m,[0m [38;2;248;248;242mn[0m[38;2;248;248;242m)[0m [38;2;230;71;71mdo[0m
        [38;2;155;107;223mfib[0m[38;2;248;248;242m([0m[38;2;248;248;242mn[0m [38;2;248;248;242m-[0m [38;2;228;243;74m1[0m[38;2;248;248;242m)[0m [38;2;248;248;242m+[0m [38;2;155;107;223mfib[0m[38;2;248;248;242m([0m[38;2;248;248;242mn[0m [38;2;248;248;242m-[0m [38;2;228;243;74m2[0m[38;2;248;248;242m)[0m
    [38;2;230;71;71mend[0m
[38;2;230;71;71mend[0m

[38;2;230;71;71mfor[0m [38;2;248;248;242mi[0m [38;2;248;248;242m=[0m [38;2;228;243;74m1[0m[38;2;248;248;242m:[0m[38;2;228;243;74m10[0m
    [38;2;248;248;242mBase[0m[38;2;248;248;242m.[0m[38;2;155;107;223mprintln[0m[38;2;248;248;242m([0m[38;2;66;230;108m"fib([0m[38;2;248;248;242m$[0m[38;2;248;248;242mi[0m[38;2;66;230;108m) = [0m[38;2;248;248;242m$[0m[38;2;248;248;242m([0m[38;2;155;107;223mfib[0m[38;2;248;248;242m([0m[38;2;248;248;242mi[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;66;230;108m"[0m[38;2;248;248;242m)[0m
[38;2;230;71;71mend[0m

[38;2;122;122;122m# Demonstrate qualified calls[0m
[38;2;248;248;242mBase[0m[38;2;248;248;242m.[0m[38;2;155;107;223mlength[0m[38;2;248;248;242m([0m[38;2;248;248;242mcache[0m[38;2;248;248;242m)[0m
[38;2;248;248;242mCore[0m[38;2;248;248;242m.[0m[38;2;155;107;223mtypeof[0m[38;2;248;248;242m([0m[38;2;248;248;242mcache[0m[38;2;248;248;242m)[0m
[38;2;248;248;242mBase[0m[38;2;248;248;242m.[0m[38;2;248;248;242mIterators[0m[38;2;248;248;242m.[0m[38;2;155;107;223mtake[0m[38;2;248;248;242m([0m[38;2;228;243;74m1[0m[38;2;248;248;242m:[0m[38;2;228;243;74m10[0m[38;2;248;248;242m,[0m [38;2;228;243;74m3[0m[38;2;248;248;242m)[0m

[38;2;230;71;71mend[0m [38;2;122;122;122m# module[0m

[38;2;122;122;122m#=
Additional syntax coverage from old julia sample:
Nested comments #= can be #= deeply =# nested =#
=#[0m

[38;2;122;122;122m# Array and tuple literals[0m
[38;2;248;248;242m[[0m[38;2;228;243;74m1[0m[38;2;248;248;242m,[0m [38;2;228;243;74m3[0m[38;2;248;248;242m,[0m [38;2;228;243;74m3[0m[38;2;248;248;242m,[0m [38;2;228;243;74m4[0m[38;2;248;248;242m][0m[38;2;248;248;242m[[0m[38;2;228;243;74m1[0m[38;2;248;248;242m:[0m[38;2;255;121;198mend[0m[38;2;248;248;242m][0m
[38;2;248;248;242m([0m[38;2;228;243;74m1[0m[38;2;248;248;242m,[0m [38;2;228;243;74m2[0m[38;2;248;248;242m,[0m [38;2;228;243;74m1.0[0m[38;2;248;248;242m)[0m[38;2;248;248;242m[[0m[38;2;228;243;74m1[0m[38;2;248;248;242m:[0m[38;2;228;243;74m2[0m[38;2;248;248;242m][0m
[38;2;248;248;242m[[0m[38;2;248;248;242m([0m[38;2;228;243;74m1[0m[38;2;248;248;242m,[0m [38;2;228;243;74m3[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m [38;2;248;248;242m([0m[38;2;228;243;74m3[0m[38;2;248;248;242m,[0m [38;2;228;243;74m4[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m[38;2;248;248;242m[[0m[38;2;255;121;198mend[0m[38;2;248;248;242m-[0m[38;2;228;243;74m1[0m[38;2;248;248;242m][0m
[38;2;248;248;242m[[0m[38;2;248;248;242m([0m[38;2;228;243;74m1[0m[38;2;248;248;242m,[0m [38;2;228;243;74m3[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m [38;2;248;248;242m([0m[38;2;228;243;74m3[0m[38;2;248;248;242m,[0m [38;2;228;243;74m4[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m[38;2;248;248;242m[[0m[38;2;255;121;198mbegin[0m[38;2;248;248;242m][0m

[38;2;122;122;122m# Control flow[0m
[38;2;230;71;71mif[0m [38;2;248;248;242mx[0m [38;2;230;71;71min[0m [38;2;248;248;242my[0m
    [38;2;241;250;140mnothing[0m
[38;2;230;71;71mend[0m
[38;2;248;248;242mx[0m [38;2;230;71;71min[0m [38;2;248;248;242my[0m [38;2;230;71;71m?[0m [38;2;228;243;74mfalse[0m [38;2;230;71;71m:[0m [38;2;228;243;74mtrue[0m

[38;2;230;71;71mlet[0m [38;2;248;248;242mx[0m [38;2;248;248;242m=[0m [38;2;228;243;74m1[0m
    [38;2;230;71;71mlocal[0m [38;2;248;248;242mt[0m
    [38;2;230;71;71mglobal[0m [38;2;248;248;242ms[0m
    [38;2;248;248;242mt[0m [38;2;248;248;242m=[0m [38;2;248;248;242mx[0m
[38;2;230;71;71mend[0m

[38;2;122;122;122m# Type definitions[0m
[38;2;230;71;71mabstract[0m [38;2;230;71;71mtype[0m [38;2;117;215;236mAbstractPoint[0m[38;2;248;248;242m{[0m[38;2;117;215;236mT[0m[38;2;248;248;242m}[0m[38;2;117;215;236m [0m[38;2;248;248;242m<:[0m[38;2;117;215;236m [0m[38;2;117;215;236mNumber[0m [38;2;230;71;71mend[0m
[38;2;230;71;71mmutable[0m [38;2;230;71;71mstruct[0m [38;2;117;215;236mPoint[0m[38;2;248;248;242m{[0m[38;2;117;215;236mT[0m[38;2;248;248;242m}[0m [38;2;230;71;71mwhere[0m [38;2;248;248;242m{[0m[38;2;117;215;236mT[0m[38;2;248;248;242m<:[0m[38;2;117;215;236mNumber[0m[38;2;248;248;242m}[0m[38;2;117;215;236m
    x[0m[38;2;248;248;242m::[0m[38;2;117;215;236mT[0m[38;2;117;215;236m
    y[0m[38;2;248;248;242m::[0m[38;2;117;215;236mT
    [0m[38;2;155;107;223mPoint[0m[38;2;248;248;242m([0m[38;2;248;248;242mx[0m[38;2;248;248;242m)[0m[38;2;117;215;236m [0m[38;2;248;248;242m=[0m[38;2;117;215;236m new[0m[38;2;248;248;242m([0m[38;2;117;215;236mx[0m[38;2;248;248;242m,[0m[38;2;117;215;236m 2x[0m[38;2;248;248;242m)[0m[38;2;117;215;236m
end
struct Empty[0m[38;2;248;248;242m{[0m[38;2;117;215;236mT[0m[38;2;248;248;242m}[0m[38;2;117;215;236m end
primitive type Float16Custom [0m[38;2;248;248;242m<:[0m[38;2;117;215;236m [0m[38;2;139;233;253mAbstractFloat[0m[38;2;117;215;236m 16 end

[0m[38;2;122;122;122m# Macros[0m[38;2;117;215;236m
macro something[0m[38;2;248;248;242m([0m[38;2;117;215;236mx[0m[38;2;248;248;242m...[0m[38;2;248;248;242m)[0m
    [38;2;117;215;236mnothing[0m
[38;2;230;71;71mend[0m

[38;2;122;122;122m# Character literals[0m
[38;2;66;230;108m' '[0m[38;2;248;248;242m,[0m [38;2;66;230;108m'\n'[0m[38;2;248;248;242m,[0m [38;2;66;230;108m'\''[0m[38;2;248;248;242m,[0m [38;2;66;230;108m'"'[0m[38;2;248;248;242m,[0m [38;2;66;230;108m'\u1234'[0m[38;2;248;248;242m,[0m [38;2;66;230;108m'⻆'[0m

[38;2;122;122;122m# String literals[0m
[38;2;66;230;108m"""Multiline
string"""[0m
[38;2;66;230;108m" [0m[38;2;248;248;242m$[0m[38;2;248;248;242mx[0m[38;2;66;230;108m [0m[38;2;248;248;242m$[0m[38;2;248;248;242m([0m[38;2;230;71;71mlet[0m[38;2;66;230;108m [0m[38;2;248;248;242mx[0m[38;2;66;230;108m [0m[38;2;248;248;242m=[0m[38;2;66;230;108m [0m[38;2;248;248;242my[0m[38;2;66;230;108m [0m[38;2;248;248;242m+[0m[38;2;66;230;108m [0m[38;2;228;243;74m1[0m[38;2;248;248;242m;[0m[38;2;66;230;108m [0m[38;2;248;248;242mx[0m[38;2;248;248;242m^[0m[38;2;228;243;74m2[0m[38;2;248;248;242m;[0m[38;2;66;230;108m [0m[38;2;230;71;71mend[0m[38;2;248;248;242m)[0m[38;2;66;230;108m "[0m
[38;2;227;86;167mr[0m[38;2;66;230;108m"[a-z]+$xyz"[0m[38;2;248;248;242mm[0m
[38;2;227;86;167mraw[0m[38;2;66;230;108m"\n\n\r\t...\b"[0m
[38;2;227;86;167mv[0m[38;2;66;230;108m"0.0.2"[0m [38;2;248;248;242m≥[0m [38;2;227;86;167mv[0m[38;2;66;230;108m"0.0.1"[0m

[38;2;122;122;122m# Command literals[0m
[38;2;80;250;123m`echo [0m[38;2;248;248;242m$[0m[38;2;248;248;242mbar[0m[38;2;80;250;123m`[0m

[38;2;122;122;122m# Number formats[0m
[38;2;228;243;74m1_000_000[0m [38;2;248;248;242m+[0m [38;2;228;243;74m1.0e-9[0m [38;2;248;248;242m*[0m [38;2;228;243;74m0.121[0m [38;2;248;248;242m/[0m [38;2;228;243;74m1121.0[0m
[38;2;228;243;74m1.0f0[0m [38;2;248;248;242m-[0m [38;2;228;243;74m1E-12[0m
[38;2;228;243;74m0b100_101_111[0m
[38;2;228;243;74m0o12123535[0m
[38;2;228;243;74m0x4312afAF[0m
