Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alfredxing/calc
A simple command-line calculator written in Go
https://github.com/alfredxing/calc
Last synced: 3 months ago
JSON representation
A simple command-line calculator written in Go
- Host: GitHub
- URL: https://github.com/alfredxing/calc
- Owner: alfredxing
- License: mit
- Archived: true
- Created: 2015-02-14T00:19:03.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2023-05-06T16:31:10.000Z (almost 2 years ago)
- Last Synced: 2024-06-18T13:53:14.078Z (8 months ago)
- Language: Go
- Homepage:
- Size: 36.1 KB
- Stars: 459
- Watchers: 10
- Forks: 49
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## calc
[](https://godoc.org/github.com/alfredxing/calc) [](https://travis-ci.org/alfredxing/calc)
A simple, fast, and intuitive command-line calculator written in Go.
### Install
Install calc as you would any other Go program:
```
go get github.com/alfredxing/calc
```### Usage
You can use calc in two ways: shell mode and command.#### Shell mode
This is probably the mode you'll want to use. It's like the `python` shell or `irb`. The shell mode uses the `terminal` package provided by [`golang.org/x/crypto/ssh/terminal`](https://godoc.org/golang.org/x/crypto/ssh/terminal), which means it supports many of the shell features you know and love (like history, pasting, and the `exit` command).
```shell
> 1+1
2
> 3(5/(3-4))
-15
> 3pi^2
29.608813203268074
> @+1
30.608813203268074
> @@@*2
-30
> ln(-1)
NaN
```#### Command
You can also use calc to evaluate an expression with just a single command (i.e. without opening the shell). To do this, just use `calc [expression]`:
```shell
bash$ calc 1+1
2
bash$
```### Supported functions, operators, and constants
calc supports all the standard stuff, and I'm definitely adding more later (also feel free to fork and add your own!)##### Operators
`+`, `-`, `*`, `/`, `^`, `%`##### Functions
`sin`, `cos`, `tan`, `cot`, `sec`, `csc`, `asin`, `acos`, `atan`, `acot`, `asec`, `acsc`, `sqrt`, `log`, `lg`, `ln`, `abs`##### Constants
`e`, `pi`, `π`##### History
Previous results can be accessed with the `@` symbol. A single `@` returns the result of the last computation, while multiple `@` gets the nth last result, where n is the number of `@`s used (for example, `@@` returns the second-last result, `@@@@@` returns the fifth-last result).### Why not use ...?
- Doesn't work without an internet connection
- Slower
- Doesn't show previous computations, so you end up with multiple tabs open at once.
- Spotlight (on OS X)
- No history
- Switching between Spotlight and other windows isn't too fun
- Python/IRB
- Requires use of a separate math module for most functions and constants
- A little bit slower to start up
- `bc`
- Limited number of built-in functions; these have shortened (not too intuitive) names as well.The alternatives above are all great, and have their own advantages over calc. I highly recommend looking into these if you don't like how calc works.