Shik Language
Overview
Shik is a functional, dynamically-typed scripting language designed for shell automation with a minimalist syntax designed to be easily written in the terminal.
Installation
From Source (Recommended)
# Requires Rust toolchain (https://rustup.rs/)
From Pre-built Binaries
Download the appropriate binary for your platform from the Releases page.
Build from Source
# Binary will be at target/release/shik
Usage
# Run a script file
# Start REPL (interactive mode)
Language Features
- Pipeline operator (
$>) for function composition - First-class functions and lambdas
- Pattern matching capabilities
- Rich standard library for working with system
- Lazy evaluation where appropriate
Example
;; get all files in lang-dev with ext name .dk
;; Any string without whitespaces could be written with `:` symbol in the start
glob :../lang-dev/**/*.dk $>
;; Redirect it to function list mapping function.
;; Replace all :src/file.dk with ["src/file.dk", "src/file.ts"].
map (fn [f] [f, ext.replace f :ts]) $>
;; Iterate each entry, and for each file copy if the file exists to "./"
iterate (iterate (fn [f] copy.if-exists f :./))
Building for Distribution
See DISTRIBUTION.md for detailed instructions on building release binaries for multiple platforms.
License
MIT