TL;DR
「速く、親しみやすい、関数型」をうたう関数型のプログラミング言語。機械語か WebAssembly にコンパイルされる。
仕組み
ビルドも実行も速くなるように設計されている。構文、意味論、付属のツールは、どれも使いやすさを重視している。言語は少数の単純な要素で構成され、関数型だけの単一パラダイムである。コンパイラ全体がブラウザ上で動くので、サーバなしでプレイグラウンドを使える。
例
未完了の ToDo を絞り込んで表示するコードは次のようになる。
print_remaining! = |todos|
todos
.keep_if(|todo| todo.status != Done)
.for_each!(|todo| echo!("- ${todo.name}\n"))Apple Silicon の Mac には、当時は次の手順で入れた(バージョンは alpha3)。
-
リリースからアーカイブを取ってきて展開する
curl -OL https://github.com/roc-lang/roc/releases/download/alpha3-rolling/roc-macos_apple_silicon-alpha3-rolling.tar.gz tar xf roc-macos_apple_silicon-alpha3-rolling.tar.gz -
Homebrew で zstd を入れる(
brew install zstd) -
.zshrcで展開したディレクトリをPATHに足すexport PATH=$PATH:$HOME/roc_nightly-macos_apple_silicon-<Roc のバージョン> -
roc versionで動作を確かめる
エディタの拡張機能は公式サイトにまとまっている。