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