$
: Dyadic, calls first arg as a function with second arg as its arg (yo dawg...)=
: Assign to a variable or ID,
: Array builder, sometimes acts a bit silly, a bit wacky~
: Function builder, arg on left and body on rightid
: Makes an ID from a variablenscopd-id
: Makes an unscoped ID from a variablevar
: Dereferences a variable (useful with strings)ncon
: Wraps something in an arraycast.*
: Casts to afloat
,int
,string
,bool
, orarray
con
: Pushes second arg to the end of the first (not the same asconc
)conc
: Concats two arrays+
: Addition, concat, bool OR-
: Subtraction, bool XOR*
: Multiplication, repeat, bool AND/
: Division%
: Modulo**
: Exponentiation/power, cartesian productcmp
: Compare<
/>
/<=
/>=
: Tf do you think they do it's 22:29 I'm not writing a useful explanantion you slimy curand
: Non-short-circuiting ANDor
: Non-short-circuiting OR~~
: Loose equality (sort of is)==
: Strict equality (is)!~
/!
: Loose inquality (sort of is not)!=
/!!
: Strict inequality (is not)+=
/-=
/*=
//=
/%=
: Do I have to explain everything to you?++
/--
: Increment/decrement_
: Negate, reverse, bool NOT@
: Dereferences IDsif
: It's like your favorite practical language, but with an odd twist: It still runs the code if the condition fails, but as a ghost, and returns the result if it had run whether it did or not(prints)
: Contains stuff to be printed (INTERNAL)print
: Prints something(inputs)
: Contains stuff to be inputed (INTERNAL)input
: Inputs something.is-partial
: Returns how many args a built-in has already takencond
: Takes a condition. Returns result of second arg is truthy, third arg if falsysize
: Length of a string or array, doesn't mattercar
: First item from an array, if you use this instead of{0}
, you're a nerd, you know that?cdr
: All but first item in an arraycopy
: Clones something (this may behave very oddly with functions and IDs)isdo
: Casts to bool. Literally all it does. What do you want from me?isdon't
: Likeisdo
, but from another universe made of antimatter. Falls in love withisdo
at the end of the movie, but when they embrace one another, the resulting particle annihilation flattens New Yorkisn
: Is null? Is null?!isnn't
:isdon't
's cousin who thinks the whole antimatter thing is a conspiracy and that it doesn't really need to stay away from real matter?
: Identitytype
: Type, as a string (nb: floats arenumber
)not
: Same asisdon't
dbg
: Debug commanddbg.data
: Gets rid of the fluff. You're not here to mess around. You're a serious guy, with serious business to attend to.dbg.pars
: Literally the only thing that we can rely on in this cruel world (unless there's a trailing apostrophe)while
: Classic while loopdo-while
: Same order as awhile
loop, just runs the body once firstfor
: C-style for loop, note that you can put multiple final statements in if you have a lot of unfinished business- There's a ton of math operators, like
sin
andmin
, and constants likePI
andSQRT2
strfor
: Map. No reason you'd ever use this.filt
: Filterfind
: Find array item matching predicatefindpos
: Likefind
but returns the first indexfindposs
: Returns all of the indices, not to be outdone.rdc
: Reducerdcr
: Reduce (from right)sort
: Sort with a comparator (tip:sort>
andsort<
for ascending and descending,sort cmp
if you're not as misanthropic as me)norm
: Normalizes a string. No reason this should be there, it's never going to be useful, but Unicode is hell so I'll give you this one for freepoints
: Extracts a list of code points from a stringfrom-points
: Makes a string from a list of code pointssto
: Slice to an indexsfro
: Slice from an indexflip
: Transposervr
: Reversesplit
: Split a string or arraysquish
: Shallow flat an arraycrush
: Deep flat an arraysquish-with
: Shallow flat an array, joining with a delimitercrush-with
: Deep flat an array, joining with a delimiter
Future features:
nscopd-fn
: Unscoped functions? What would that even do, you silly man?sentinel
: You'll have to wait and find outmacro
: Yep, runtime macros. They're worse than you could possibly imagine.NullParsingCall
: Redefining null is a readability issue in some contexts, this gives you more flexibilitydbg.scop
: 1.1 will come with a ton of stuff regarding scope manipulation, so far this is a known function that will be addedscop
: Extracts the scope from a scopd function or idsrc
: Takes the source from a function, and makes it into a new data type: source code. Code is finally data!built-in
: Allows constructing built-inssplat
: Splats an array into a function's args and[REDACTED}