Awesome Racket language features
Also see: Fast-Racket at Racket's GitHub Wiki
Creating binaries
You can create portable binaries with Racket's raco
command! Use raco exe
and raco distribute
.
More -> https://docs.racket-lang.org/raco/exe.html
Sample games
Racket provides a executable plt-games
, when ran (from console) it opens a menu of miscellaneous games, among them: jewel, minesweeper, aces, spider, checkers. & more (20 games total).
Plots
You can plot data in 2d & 3d forms.
2D
Sample code:
#lang racket/base
(require racket/gui/base racket/math plot)
(plot-new-window? #true)
(plot (function sin (- pi) pi #:label "y = sin(x)"))
3D
Sample code:
#lang racket/base
(require racket/gui/base racket/math plot)
(plot-new-window? #true)
(plot3d
(surface3d (lambda (x y) (* (cos x) (sin y)))
(- pi) pi (- pi) pi)
#:title "An R × R → R function"
#:x-label "x" #:y-label "y" #:z-label "cos(x) sin(y)")
Browser
There's a included library to render web pages, just "(require browser)".
Sample code:
#lang racket
(require browser)
(open-url "https://xgqt.gitlab.io/")
FFI
You can use Racket's Foreign Function Interface to interact with non-Racket libraries to make use of very fast libraries written in (mainly) FORTRAN & C.
For example sci uses FFI for CBLAS & LAPACK.
Parallelism
For greater speed up with parallel execution there are futures, places and distributed places (for distributed programming).