Need help with kalk?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

PaddiM8
133 Stars 6 Forks MIT License 264 Commits 1 Opened issues

Description

A calculator/expression evaluator written in rust that supports variables and functions.

Services available

!
?

Need anything else?

Contributors list

# 379,523
css3-an...
Svelte
TypeScr...
Sass
240 commits
# 504,807
Svelte
TypeScr...
HTML
Shell
1 commit
# 108,267
Haskell
Rust
Shell
regex
1 commit

kalk

Crates.io npm GitHub Docs.rs Build status

Kalk is a calculator (both program and library) that supports user-defined variables, functions, and units (experimental, limited). It runs on Windows, macOS, Linux, Android, and in web browsers (with WebAssembly).

Kanban | Website

Features

  • Operators: +, -, *, /, !
  • Groups: (), ⌈⌉, ⌋⌊
  • Pre-defined functions and constants
  • User-defined functions and variables.
    f(x, y) = xy
    ,
    x = 5
  • User-defined units (experimental).
    unit m = cm/100
    ,
    2m/50cm
    ,
    50cm to m
  • Understands fairly ambiguous syntax. Eg.
    2sin50 + 2xy
  • Syntax highlighting
  • Special-symbol completion on tab. Eg. write
    sqrt
    and press tab. It will be turned into
    .
  • Sum function:
    sum(start, to, expression)
    Eg.
    sum(1, 3, 2n+1)
    is the same as
    2*1+1 + 2*2+1 + 2*3+1
    =
    15
  • Load a file including predefined functions and constants. For example, if you're going to use Kalk for physics, you load up your file with physics functions/constants when starting Kalk.
    -i file
  • Misc: separate expressions by a semicolon to write them on the same line, use the
    ans
    variable to get the value of the previously calculated expression.

Libraries

There are currently three different libraries related to kalk. * kalk: The Rust crate that powers it all. * @paddim8/kalk: JavaScript bindings to

kalk
. This lets you use it in the browser, thanks to WebAssembly. * @paddim8/kalk-component: A web component that acts as a frontend to
@paddim8/kalk
, which lets you use kalk in the browser with a command line-like interface.

Installation

Binaries

Pre-compiled binaries for Linux, Windows, and macOS (64-bit) are available in the releases page.

Compiling

Minimum rust version: v1.36.0. Make sure you have

diffutils
gcc
make
and
m4
installed. If you use windows: follow the instructions here (don't forget to install
mingw-w64-x86_64-rust
in MSYS2).

Cargo

Run

cargo install kalk_cli

Manually

  1. Go into the
    kalk_cli
    directory.
  2. Run
    cargo build --release
  3. Grab the binary from
    targets/release

Syntax

A more complete reference can be found on the website

Functions

Defining: name(parameter1, parameter2, ...) = expression
Example:

f(x) = 2x+3

Using: name(argument1, argument2)
Example:

f(2)

Variables

Defining: name = expression
Example:

x = 3

Using: name
Example:

x

Units (experimental, are likely to not work properly)

Note: You only need to define the relationship between two units once. You will be able to convert between both of them. Defining:

unit
name = expression
Example:
unit deg = (rad*180)/π

Using: Use them freely in expressions.
Example:

2m/50cm

Converting: expression

to
unit
Example:
2 m to cm

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.