Better version of legendary ITER language.
<number>- push(number)<variable>- push(variable);<variable>- push(&variable)<constant>- push(constant)[].- push(*pop_1)[]<array>- push(array[pop_1])\read- push(input)++, --, ~, *2, /2, ++., --.- push(pop_1, )+, -, *, /, %, ^, &, |, <<, >>, ->, <-- push(pop_2, pop_1)*/, *%- push(pop_3, pop_2, pop_1)\copy- push(top_1)\prev- push(top_2)\prew- push(top_3)\push- push(pocket)\save- pocket = top_1\pick- pocket = pop_1\swap- swap(top_1, top_2)\drop- pop_1\kill- \swap \drop\post- print(pop_1)\mset- memset(pop_1, pop_2, pop_3 * sizeof(int))\mcpy- memcpy(pop_1, pop_2, pop_3 * sizeof(int))\bcnt- push(__builtin_popcount(pop_1))\bclz- push(__builtin_clz(pop_1))\bctz- push(__builtin_ctz(pop_1))\dump- pop pop_2 values to *pop_1\free- free(pop_1)\minc- *pop_1++\mdec- *pop_1--=<variable>- variable = pop_1:<variable>- local variable = pop_1=<constant>- define constant pop_1{}.- *pop_2 = pop_1.{}- *pop_1 = pop_2{}<array>- array[pop_2] = pop_1<array>{}- array[pop_1] = pop_2<->- swap(*pop_1, *pop_2)$- assign and push heap array$<array>- assign heap array[pop_1]@<array>- assign static array[pop_1]#<function> <commands> \- declare function (same as define).<sunction> <commands> \- declare sunction (same as function)\back- return,<module>- include module`<comment>- comment\iter <commands> \- while true\halt- break\jump- continue<, <=, >, >=, ==, !=, !, ? <commands> \- if (pop_2, pop_1)\else <commands> \- else\<function>- function()()<sunction>- sunction()
\avx2_add- ymm0 = _mm256_add_epi32(ymm0, pop_1)\avx2_sub- ymm0 = _mm256_sub_epi32(ymm0, pop_1)\avx2_mul- ymm0 = _mm256_mullo_epi32(ymm0, pop_1)\avx2_xor- ymm0 = _mm256_xor_si256(ymm0, pop_1)\avx2_and- ymm0 = _mm256_add_si256(ymm0, pop_1)\avx2_or- ymm0 = _mm256_or_si256(ymm0, pop_1)\avx2_min- ymm0 = _mm256_min_epi32(ymm0, pop_1)\avx2_max- ymm0 = _mm256_max_epi32(ymm0, pop_1)\avx2_cmpeq- ymm0 = _mm256_cmpeq_epi32(ymm0, pop_1)\avx2_cmpgt- ymm0 = _mm256_cmpgt_epi32(ymm0, pop_1)\avx2_load- _mm256_loadu_si256(ymm0, pop_1)\avx2_store- _mm256_storeu_si256(pop_1, ymm0)\avx2_set1- ymm0 = _mm256_set1_epi32(pop_1)
\min- a b -> min\max- a b -> max\lson- id -> lson\rson- id -> rson\upper_2- a -> pow()gcd- a b -> gcd()pow_mod- a n mod -> res
()read_array- arr n ->()print_array- arr n ->()fill- arr n x ->()partial_sum- arr n ps ->()reverse- arr n ->()bubble_sort- arr n ->()merge- arr n brr n crr ->()merge_sort- arr n ->()unique- arr n -> new_n
()find- arr n x -> pos()lower_bound- arr n x -> pos()upper_bound- arr n x -> pos()count- arr n x -> cnt()accumulate- arr n -> sum()min_element- arr n -> min()max_element- arr n -> max
\trie_init- -> trie()trie_insert- trie x ->()trie_erase- trie x ->()trie_count- trie x -> cnt