PLDB
Languages Features Calendar About Lists Add Language
GitHub icon

Racket

Racket

Racket is a programming language created in 1994 by Matthias Felleisen.

Racket (formerly PLT Scheme) is a general purpose, multi-paradigm programming language in the Lisp-Scheme family. One of its design goals is to serve as a platform for language creation, design, and implementation. The language is used in a variety of contexts such as scripting, general-purpose programming, computer science education, and research. Read more on Wikipedia...

Try now: Riju ยท TIO

#59on PLDB 28Years Old 7.4kUsers

Example code from Riju:

#lang racket/base (display "Hello, world!\n")

Example code from hello-world:

#lang racket "Hello World"

Example code from the Hello World Collection:

;; Hello world in Racket #lang racket/base "Hello, World!"

Example code from Linguist:

; Clean, simple and efficient code -- that's the power of Racket! ; http://racket-lang.org/ (define (bottles n more) (printf "~a bottle~a of beer~a" (case n [(0) "no more"] [(1) "1"] [else n]) (if (= n 1) "" "s") more)) (for ([n (in-range 99 0 -1)]) (bottles n " on the wall, ") (bottles n ".\n") (printf "Take one down and pass it around, ") (bottles (sub1 n) " on the wall.\n\n")) (displayln "No more bottles of beer on the wall, no more bottles of beer.") (displayln "Go to the store and buy some more, 99 bottles of beer on the wall.")

Example code from Wikipedia:

#lang typed/racket (: fact (Integer -> Integer)) (define (fact n) (cond [(zero? n) 1] [else (* n (fact (- n 1)))]))

Language features

Feature Supported Example Token
Print() Debugging โœ“ display
Homoiconicity โœ“
Line Comments โœ“
; A comment
;
Module Pattern โœ“
(module nest racket
   (provide (for-syntax meta-eggs)
            (for-meta 1 meta-chicks)
            num-eggs)
   (define-for-syntax meta-eggs 2)
   (define-for-syntax meta-chicks 3)
   (define num-eggs 2))
Prefix Notation โœ“
(+ 1 2 3)
Mixins โœ“
(mixin (interface-expr ...) (interface-expr ...)
 class-clause ...)
Macros โœ“
https://docs.racket-lang.org/guide/macros.html
File Imports โœ“
(require (prefix-in tcp: racket/tcp))
Comments โœ“
Symbol Tables โœ“
;; Some programming languages allow the symbol table to be manipulated at run-time, so that symbols can be added at any time.
Strings โœ“
"hello world"
"
Semantic Indentation ฯด

Trending Racket repos on GitHub

repo stars description
Courses- 43 Quiz & Assignment of Coursera

Article source

PLDB - Build the next great programming language. v5.0.0 - Acknowledgements ยท Email ยท GitHub