5 releases
0.1.4 | Mar 30, 2022 |
---|---|
0.1.3 | Mar 28, 2022 |
0.1.2 | Mar 27, 2022 |
0.1.1 | Mar 26, 2022 |
0.1.0 | Mar 26, 2022 |
#1293 in Command line utilities
33 downloads per month
47KB
1K
SLoC
🧮 clc - Command Line Calculator
Clc is a Command line calculator written in Rust 🦀 It eval given expression and print result.
📖 Table of Contents (Toc)
Installation
Usage
License
💻 Installation
There are prebuilt x86-64 binaries for Linux, macOS and Windows on the release page.
You can install the latest release from source using cargo, or build directly from a source checkout.
📦 Via cargo
cargo install clc
🐧 Linux
curl -sSLf https://github.com/ymgyt/calculator/releases/download/0.1.4/clc-x86_64-unknown-linux-gnu.tar.gz | tar zxf - -C /usr/local/bin
🍎 Mac
curl -sSLf https://github.com/ymgyt/calculator/releases/download/0.1.4/clc-x86_64-apple-darwin.tar.gz | tar zxf - -C /usr/local/bin
🐳 Docker
To use clc with docker, execute the following command.
docker run --rm -it ghcr.io/ymgyt/clc:latest
👩💻 Usage
Execute the clc
command to start a repl session. type the expression to evaluate and press Enter.
To exit the session, type quit
or press Ctrl + C.
$ clc
Version: v0.1.4
To quit, press Ctrl+C or type quit
❯ sqrt(sqrt(16)) * (100 - 1) * (100 + 1) / 9
2222
❯ quit
bye
You can also retrieve results directly without using a repl session. pass the expression to evaluate with --eval
flag
clc --eval 'sqrt(-2^2) - abs(2)'
🏃 Lambda expression
Some functions take lambda expression as argument.
A lambda expression is written like |x| { x^2 }
.
{
,}
are optional, so the above expression can also be written as follows |x| x^2
.
❯ sig(1,10 |x| x^2)
385
❯ sig(1,10 |x| sig(1,10 |y| x*y))
3025
🍴 Supported Functions
identifier | description |
---|---|
sqrt(n) |
Returns the square root of a number Return NaN if a negative number provided |
pow(n,m) |
Raise n to the power of m. (= n ^ m ) |
abs(n) |
Compute the absolute value of n |
sig(n,m,lambda) |
Execute lambda with values from n to m and return the sum of the results |
🥣 Constants
identifier | description |
---|---|
pi |
Archimedes’ constant (π) |
e |
Euler’s number (e) |
License
This project is available under the terms of either the Apache 2.0 license or the MIT license.
Dependencies
~6–12MB
~215K SLoC