Crates.io | clc |
lib.rs | clc |
version | 0.1.4 |
source | src |
created_at | 2022-03-26 14:57:46.195023 |
updated_at | 2022-03-30 16:46:40.177019 |
description | Calculator command line interface app |
homepage | |
repository | https://github.com/ymgyt/calculator |
max_upload_size | |
id | 556717 |
size | 34,185 |
Clc is a Command line calculator written in Rust 🦀 It eval given expression and print result.
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.
cargo install clc
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
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
To use clc with docker, execute the following command.
docker run --rm -it ghcr.io/ymgyt/clc:latest
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)'
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
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 |
identifier | description |
---|---|
pi |
Archimedes’ constant (π) |
e |
Euler’s number (e) |
This project is available under the terms of either the Apache 2.0 license or the MIT license.