Languages Features Creators Calendar CSV Resources Blog About Pricing Add Language
GitHub icon

Racket

Racket - Programming language

< >

Racket is a programming language created in 1994 by Matthias Felleisen and Matthew Flatt and Robert Bruce Findler and Shriram Krishnamurthi.

#75on PLDB 29Years Old 7.4kUsers
4Books 10Papers 18kRepos

Try now: Riju · TIO

Racket 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...


Example from Riju:
#lang racket/base (display "Hello, world!\n")
Example from hello-world:
#lang racket "Hello World"
;; Hello world in Racket #lang racket/base "Hello, World!"
Example 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 from Wikipedia:
#lang typed/racket (: fact (Integer -> Integer)) (define (fact n) (cond [(zero? n) 1] [else (* n (fact (- n 1)))]))

Language features

Feature Supported Token Example
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
(define-syntax-rule (swap x y)
(let ([tmp x])
  (set! x y)
  (set! y tmp)))
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.
Lispy
Strings "
"hello world"
Case Insensitive Identifiers X
Semantic Indentation X

Books about Racket from ISBNdb

title authors year publisher
Racket Programming the Fun Way: From Strings to Turing Machines Stelly, James. W. 2021-01-08T00:00:01Z No Starch Press
Racket Programming the Fun Way: From Strings to Turing Machines Stelly, James. W. 2021 No Starch Press
Introducing Blockchain with Lisp: Implement and Extend Blockchains with the Racket Language Sitnikovski, Boro 2021 Apress
Realm of Racket Matthias Felleisen; David Van Horn; Conrad Barski; 20130613 Random House Publishing Services

Publications about Racket from Semantic Scholar

title authors year citations influentialCitations
A Programmable Programming Language M. Felleisen and R. Findler and M. Flatt and S. Krishnamurthi and Eli Barzilay and J. McCarthy and Sam Tobin-Hochstadt 2018 55 1
The Racket Manifesto M. Felleisen and R. Findler and M. Flatt and S. Krishnamurthi and Eli Barzilay and J. McCarthy and Sam Tobin-Hochstadt 2015 58 6
Whalesong: running racket in the browser Daniel Yoo and S. Krishnamurthi 2013 12 1
Seeing the futures: profiling shared-memory parallel racket J. Swaine and B. Fetscher and Vincent St-Amour and R. Findler and M. Flatt 2012 6 0
Racets: Faceted Execution in Racket Kristopher K. Micinski and Zhanpeng Wang and Thomas Gilray 2018 4 0
Racket Programming Language Boro Sitnikovski 2021 4 0
Educating Computer Science Educators Online - A Racket MOOC for Elementary Math Teachers of Finland Tiina Partanen and Pia Niemelä and Linda Mannila and T. Poranen 2017 3 0
Combining Processing with Racket Hugo F. Correia and A. Leitão 2015 2 1
From Macros to DSLs: The Evolution of Racket Ryan Culpepper and M. Felleisen and M. Flatt and S. Krishnamurthi 2019 2 0
High-Performance Graphics in Racket with DirectX A. Bossard 2017 1 0
modula-3.html · racket.html · doi.html

View source

- Build the next great programming language · Search · v2023 · Day 205 · Docs · Acknowledgements · Traffic · Traffic Today · Mirrors · GitHub · feedback@pldb.com