vc (Varyx Calculator)
https://www.vcode.org/vc/
vc
is a command-line calculator. Its purpose is to prototype the development of Varyx’s parser and expression engine. Think of it as an embryo or larval stage to the Varyx programming language.
The vc
source code is AGPL-licensed and published on GitHub.
Progress
- Big integers up to 2^2^20 (can be trivially increased to 2^2^36)
- strings (including
\u1234
and\u{12345}
escape sequences) - heterogenous arrays
- user-defined code blocks
map
operatortrue
andfalse
- optional type annotations
- integer type refinements:
i8
,u8
,i16
,u16
,i32
,u32
,i64
,u64
- rational numbers
byte
type (distinct fromu8
integers)- comma-separated lists (with empty list as
()
) - constants and variables (declared by
let
(orconst
) andvar
) - unary
+
,-
- binary arithmetic
+
,-
,*
,/
,div
,%
,mod
, and^
(exponentiation) - equalities (
==
and!=
) - inequalities (
<
,<=
,>
, and>=
) - left unary
(+)
for list count - infix binary
(*)
for list multiplication - partial application of function arguments with
%
- pure functions
area()
,abs()
,half()
,join()
,typeof()
,hex()
,unbin()
, andunhex()
- type-safe assignment with
=
,+=
,-=
,*=
,/=
,%=
- lossy assignment with
:=
- multiple statements, separated by
;
if
/then
/else
Future Directions
- octal integer literals
- wide fixed-width integers
- REPL (read-eval-print loop)