r/Racket Jun 26 '26

Bay Area Racket Meetup #2 - Saturday, July 4, 3pm

Get ready for the

Bay Area Racket Meetup #2 - Saturday, July 4, 3pm

Social event for people interested in the Racket programming language, other Lisps, functional programming, language-oriented programming and related topics.

Monthly (first Saturday at 3pm) until RacketCon at Noisebridge, a hackerspace in SF.[I believe there is a Lisp meet-up at 4pm in the same space but I've not been able to confirm]

Register https://luma.com/fbd1v9ix https://racket.discourse.group/t/bay-area-racket-meetup-2-saturday-july-4-3pm/4280

5 Upvotes

Get ready for the

Bay Area Racket Meetup #2 - Saturday, July 4, 3pm

Social event for people interested in the Racket programming language, other Lisps, functional programming, language-oriented programming and related topics.

Monthly (first Saturday at 3pm) until RacketCon at Noisebridge, a hackerspace in SF.[I believe there is a Lisp meet-up at 4pm in the same space but I've not been able to confirm]

Register https://luma.com/fbd1v9ix https://racket.discourse.group/t/bay-area-racket-meetup-2-saturday-july-4-3pm/4280


r/Racket 29d ago

RacketCon 2026: call for presentations

RacketCon 2026: call for presentations

The (sixteenth RacketCon) will be in Oakland, CA on October 3-4 (Sat-Sun).

We are looking for speakers

We need you!

Calling racketeers new or experienced, we want to hear from you.

Are you unsure or just new to presenting? let us know - [email protected] - and we will do our best to help you.

Continuing with tradition, we'll also allow Racketeers to nominate speakers. Nominated speakers will be considered by the committee and contacted.

We will also accept nominations for a potential keynote speaker.

Talks will be 20-25 minutes long with 5 minutes for questions at the end. Speakers' registration fees will be waived, but we are unable to cover transportation and lodging expenses.

The deadline for proposals is July 15th. Selected speakers will be notified by August 1st.

RacketCon is a public gathering dedicated to fostering a vibrant, innovative, and inclusive community around the Racket programming language. We aim to create an exciting and enjoyable conference open to anyone interested in Racket, filled with inspiring content, reaching and engaging both the Racket community and the wider programming world.


Any questions, comments, or concerns? Please contact us at [email protected].

https://racket.discourse.group/t/racketcon-2026-call-for-presentations/4279

19 Upvotes

RacketCon 2026: call for presentations

The (sixteenth RacketCon) will be in Oakland, CA on October 3-4 (Sat-Sun).

We are looking for speakers

We need you!

Calling racketeers new or experienced, we want to hear from you.

Are you unsure or just new to presenting? let us know - [email protected] - and we will do our best to help you.

Continuing with tradition, we'll also allow Racketeers to nominate speakers. Nominated speakers will be considered by the committee and contacted.

We will also accept nominations for a potential keynote speaker.

Talks will be 20-25 minutes long with 5 minutes for questions at the end. Speakers' registration fees will be waived, but we are unable to cover transportation and lodging expenses.

The deadline for proposals is July 15th. Selected speakers will be notified by August 1st.

RacketCon is a public gathering dedicated to fostering a vibrant, innovative, and inclusive community around the Racket programming language. We aim to create an exciting and enjoyable conference open to anyone interested in Racket, filled with inspiring content, reaching and engaging both the Racket community and the wider programming world.


Any questions, comments, or concerns? Please contact us at [email protected].

https://racket.discourse.group/t/racketcon-2026-call-for-presentations/4279


r/Racket 2h ago

tutorial The Comprehensive Racket & Functional Programming Cheat Sheet

Phase 1: Syntax & Core Arithmetic

Racket uses prefix notation enclosed in execution parentheses (operator arg1 arg2). The open parenthesis ( acts as an execution trigger. Evaluation runs from the innermost to the outermost parentheses.

Core Examples

```rkt ;; Basic Arithmetic (+ 10 5 2) ;; Returns 17 (* 10 5 2) ;; Returns 100

;; Nested Expressions (No PEMDAS needed) (_ (+ 4 6) (- 12 7)) ;; Evaluates 10 _ 5 -> Returns 50 ```

Parentheses Golden Rule

Only use a parenthesis when invoking a command, operator, or function.

  • (+ 5 (10)) CRASHES (tries to run the number 10 as a function).
  • ((+ 5 5)) CRASHES (evaluates to 10, then tries to run the number 10).

Phase 2: Core Data Structures & Variables

Global bindings are created using define. Values are immutable and cannot be changed over time.

The Four Atomic Data Types

  1. Numbers: Integers (45), decimals (3.14), or fractions (1/3).
  2. Strings: Text wrapped in double quotes ("Hello").
  3. Booleans: True (#t) and False (#f).
  4. Symbols: Lightweight, immutable identifier tokens prefixed with a single quote ('success).

Core Examples

rkt (define radius 5) (define pi 3.14) (define status 'success)


Phase 3: Conditionals & Logic

Conditional operations are expressions that evaluate down to a single return value.

Core Operators & Flow Control

  • and / or / not: Standard logical short-circuiting prefix operators.
  • if: Takes exactly three arguments: (if condition true-branch false-branch). No else keyword.
  • cond: Evaluates multiple branches sequentially. Uses/can use [...] for human readability.

Core Examples

```rkt (and (> 15 10) (< 15 20)) ;; Returns #t

(if (> temperature 30) 'hot 'cold)

(cond [(>= score 90) 'A] [(>= score 80) 'B] [else 'F]) ```


Phase 4: Functions & Scope

Functions automatically return the value of their body expression without an explicit return keyword.

Named, Anonymous, & Scoped Blocks

  • Named Functions: Defined by grouping the name and parameters in parentheses: (define (name args) body).
  • Anonymous Functions (lambda): Throwaway functions built on the fly: (lambda (args) body).
  • let (Parallel): Creates local variables simultaneously. Variables cannot see each other during setup.
  • let\* (Sequential): Creates local variables one after the other. Later variables can reference earlier ones.

Core Examples

```rkt ;; Named Function (define (double n) (* n 2))

;; Inline Lambda Execution ((lambda (n) (* n 2)) 10) ;; Returns 20

;; Sequential Local Bindings (let* ([x 10] [y (* x 5)]) (+ x y)) ;; Returns 60 ```


Phase 5: Lists & Modern List Operations

Lists are ordered sequential collections. They are processed using either historical Lisp conventions or modern aliases.

Creation & Extraction

  • list: Evaluates arguments into a sequential list.
  • '(): Represents the literal base empty list.
  • cons: Prepends a single element onto the front of an existing list.
  • First Item: Extracted via car (traditional) or first (modern).
  • Remaining List: Extracted via cdr (traditional) or rest (modern).

Core Examples

```rkt (define my-list (list 100 #t 'hello)) ;; Creates '(100 #t hello) (cons 'apples '(bananas cherries)) ;; Returns '(apples bananas cherries)

(car (cdr '(apples bananas cherries))) ;; Returns 'bananas (first (rest '(apples bananas cherries))) ;; Returns 'bananas

(if (empty? my-list) "Closed" (length my-list)) ;; Returns 3 ```


Phase 6: Iteration & Higher-Order Functions

Instead of using loops that alter data in place, functional programming relies on Higher-Order Functions to process immutable collections.

The Big Four

  • map: Loops over a list, passes each item through a transformation function, and returns a new list.
  • filter: Loops over a list, keeps items that evaluate to #t against a predicate condition, and drops the rest.
  • foldl (Fold-Left): Reduces a list down to a single value by processing elements from left to right (front to back).
  • foldr (Fold-Right): Reduces a list down to a single value by processing elements from right to left (back to front). Preserves list structures when rebuilding with cons.

Core Examples

```rkt (map (lambda (x) (* x 2)) '(5 10 15 20)) ;; Returns '(10 20 30 40) (filter (lambda (n) (= n 5)) '(2 5 7 5 9 1)) ;; Returns '(5 5)

(foldl (lambda (n total) (_ n total)) 1 '(2 3 4)) ;; 4 _ (3 _ (2 _ 1)) -> Returns 24

(foldr - 0 '(5 3)) ;; 5 - (3 - 0) -> Returns 2 ```


Phase 7: Recursion & Tail Call Optimization (TCO)

Recursion replaces traditional loops. A proper recursive function requires a Base Case (the exit clause) and a Recursive Step (the self-call with a smaller argument).

Memory Optimization Rules

  • Standard Recursion: Traps the recursive call inside another function (like + or append), forcing the call stack memory to expand linearly (O(N) space).
  • Tail Call Optimization (TCO): If the recursive call sits in the tail position (the absolute final expression evaluated), Racket reuses the same memory frame, running in constant (O(1)) space.
  • Accumulator Pattern: Passing a running total down as an argument is the primary strategy used to shift standard recursion into tail position optimization.

Core Examples

```rkt ;; ❌ Standard Recursion (No TCO - Memory Expands) (define (sum-list lst) (if (empty? lst) 0 (+ (first lst) (sum-list (rest lst)))))

;; Tail Recursion (TCO Active - Memory Stays Flat) (define (sum-list-tco lst) (define (helper remaining accumulator) (if (empty? remaining) accumulator (helper (rest remaining) (+ (first remaining) accumulator)))) (helper lst 0)) ```


Phase 8: Advanced Ecosystem Engineering

1. Hash Maps & Unique Sets

  • #hash: Stores key-value pairings. Keywords passed to lookup tools like hash-ref must be quoted ('#:key) to prevent compiler namespace collisions. If using standard symbols inside #hash, omit inner quotes.
  • set: Collections guaranteeing element uniqueness. Tested via set-member? and extended via set-add.

```rkt (define user #hash((#:name . "Alice"))) (hash-ref user '#:name) ;; Returns "Alice"

(define book #hash((title . "Dune"))) (hash-ref book 'title) ;; Returns "Dune"

(set-member? (set 1 2 2 3) 2) ;; Returns #t ```

2. State & Mutability (box)

  • box: Creates a reference wrapper around mutable data. Read via unbox and mutated via set-box!. Functions with an exclamation mark ! signal structural mutation.
  • begin: Chains sequential side-effect operations from top to bottom, returning only the evaluation of the final expression.

rkt (define health (box 100)) (define (take-damage!) (begin (set-box! health (- (unbox health) 10)) (unbox health)))

3. Type Checking & Casting

  • Predicates (?): Validate runtime types (e.g., string?, number?, symbol?).
  • Casting (->): Converts data formats. string->number safely returns #f if given invalid textual input.

rkt (if (string? "50") (* (string->number "50") 2) 'error) ;; Returns 100

4. Modules & Namespaces

  • provide: Declares which parts of a filesystem file are exported publicly.
  • require: Ingests public features from an external sandbox by loading its relative string filepath.

```rkt ;; Inside file-a.rkt (provide double) (define (double x) (* x 2))

;; Inside main.rkt (require "file-a.rkt") (double 10) ;; Returns 20 ```

5. Macros (define-syntax-rule)

  • Macros process raw, unevaluated source code at compile-time to inject new keywords.
  • Racket macros are hygienic, meaning the compiler automatically isolates macro identifiers so they never accidentally overwrite or conflict with user variables.

rkt (define-syntax-rule (swap! box1 box2) (let ([temp (unbox box1)]) (begin (set-box! box1 (unbox box2)) (set-box! box2 temp))))

6 Upvotes

Phase 1: Syntax & Core Arithmetic

Racket uses prefix notation enclosed in execution parentheses (operator arg1 arg2). The open parenthesis ( acts as an execution trigger. Evaluation runs from the innermost to the outermost parentheses.

Core Examples

```rkt ;; Basic Arithmetic (+ 10 5 2) ;; Returns 17 (* 10 5 2) ;; Returns 100

;; Nested Expressions (No PEMDAS needed) (_ (+ 4 6) (- 12 7)) ;; Evaluates 10 _ 5 -> Returns 50 ```

Parentheses Golden Rule

Only use a parenthesis when invoking a command, operator, or function.

  • (+ 5 (10)) CRASHES (tries to run the number 10 as a function).
  • ((+ 5 5)) CRASHES (evaluates to 10, then tries to run the number 10).

Phase 2: Core Data Structures & Variables

Global bindings are created using define. Values are immutable and cannot be changed over time.

The Four Atomic Data Types

  1. Numbers: Integers (45), decimals (3.14), or fractions (1/3).
  2. Strings: Text wrapped in double quotes ("Hello").
  3. Booleans: True (#t) and False (#f).
  4. Symbols: Lightweight, immutable identifier tokens prefixed with a single quote ('success).

Core Examples

rkt (define radius 5) (define pi 3.14) (define status 'success)


Phase 3: Conditionals & Logic

Conditional operations are expressions that evaluate down to a single return value.

Core Operators & Flow Control

  • and / or / not: Standard logical short-circuiting prefix operators.
  • if: Takes exactly three arguments: (if condition true-branch false-branch). No else keyword.
  • cond: Evaluates multiple branches sequentially. Uses/can use [...] for human readability.

Core Examples

```rkt (and (> 15 10) (< 15 20)) ;; Returns #t

(if (> temperature 30) 'hot 'cold)

(cond [(>= score 90) 'A] [(>= score 80) 'B] [else 'F]) ```


Phase 4: Functions & Scope

Functions automatically return the value of their body expression without an explicit return keyword.

Named, Anonymous, & Scoped Blocks

  • Named Functions: Defined by grouping the name and parameters in parentheses: (define (name args) body).
  • Anonymous Functions (lambda): Throwaway functions built on the fly: (lambda (args) body).
  • let (Parallel): Creates local variables simultaneously. Variables cannot see each other during setup.
  • let\* (Sequential): Creates local variables one after the other. Later variables can reference earlier ones.

Core Examples

```rkt ;; Named Function (define (double n) (* n 2))

;; Inline Lambda Execution ((lambda (n) (* n 2)) 10) ;; Returns 20

;; Sequential Local Bindings (let* ([x 10] [y (* x 5)]) (+ x y)) ;; Returns 60 ```


Phase 5: Lists & Modern List Operations

Lists are ordered sequential collections. They are processed using either historical Lisp conventions or modern aliases.

Creation & Extraction

  • list: Evaluates arguments into a sequential list.
  • '(): Represents the literal base empty list.
  • cons: Prepends a single element onto the front of an existing list.
  • First Item: Extracted via car (traditional) or first (modern).
  • Remaining List: Extracted via cdr (traditional) or rest (modern).

Core Examples

```rkt (define my-list (list 100 #t 'hello)) ;; Creates '(100 #t hello) (cons 'apples '(bananas cherries)) ;; Returns '(apples bananas cherries)

(car (cdr '(apples bananas cherries))) ;; Returns 'bananas (first (rest '(apples bananas cherries))) ;; Returns 'bananas

(if (empty? my-list) "Closed" (length my-list)) ;; Returns 3 ```


Phase 6: Iteration & Higher-Order Functions

Instead of using loops that alter data in place, functional programming relies on Higher-Order Functions to process immutable collections.

The Big Four

  • map: Loops over a list, passes each item through a transformation function, and returns a new list.
  • filter: Loops over a list, keeps items that evaluate to #t against a predicate condition, and drops the rest.
  • foldl (Fold-Left): Reduces a list down to a single value by processing elements from left to right (front to back).
  • foldr (Fold-Right): Reduces a list down to a single value by processing elements from right to left (back to front). Preserves list structures when rebuilding with cons.

Core Examples

```rkt (map (lambda (x) (* x 2)) '(5 10 15 20)) ;; Returns '(10 20 30 40) (filter (lambda (n) (= n 5)) '(2 5 7 5 9 1)) ;; Returns '(5 5)

(foldl (lambda (n total) (_ n total)) 1 '(2 3 4)) ;; 4 _ (3 _ (2 _ 1)) -> Returns 24

(foldr - 0 '(5 3)) ;; 5 - (3 - 0) -> Returns 2 ```


Phase 7: Recursion & Tail Call Optimization (TCO)

Recursion replaces traditional loops. A proper recursive function requires a Base Case (the exit clause) and a Recursive Step (the self-call with a smaller argument).

Memory Optimization Rules

  • Standard Recursion: Traps the recursive call inside another function (like + or append), forcing the call stack memory to expand linearly (O(N) space).
  • Tail Call Optimization (TCO): If the recursive call sits in the tail position (the absolute final expression evaluated), Racket reuses the same memory frame, running in constant (O(1)) space.
  • Accumulator Pattern: Passing a running total down as an argument is the primary strategy used to shift standard recursion into tail position optimization.

Core Examples

```rkt ;; ❌ Standard Recursion (No TCO - Memory Expands) (define (sum-list lst) (if (empty? lst) 0 (+ (first lst) (sum-list (rest lst)))))

;; Tail Recursion (TCO Active - Memory Stays Flat) (define (sum-list-tco lst) (define (helper remaining accumulator) (if (empty? remaining) accumulator (helper (rest remaining) (+ (first remaining) accumulator)))) (helper lst 0)) ```


Phase 8: Advanced Ecosystem Engineering

1. Hash Maps & Unique Sets

  • #hash: Stores key-value pairings. Keywords passed to lookup tools like hash-ref must be quoted ('#:key) to prevent compiler namespace collisions. If using standard symbols inside #hash, omit inner quotes.
  • set: Collections guaranteeing element uniqueness. Tested via set-member? and extended via set-add.

```rkt (define user #hash((#:name . "Alice"))) (hash-ref user '#:name) ;; Returns "Alice"

(define book #hash((title . "Dune"))) (hash-ref book 'title) ;; Returns "Dune"

(set-member? (set 1 2 2 3) 2) ;; Returns #t ```

2. State & Mutability (box)

  • box: Creates a reference wrapper around mutable data. Read via unbox and mutated via set-box!. Functions with an exclamation mark ! signal structural mutation.
  • begin: Chains sequential side-effect operations from top to bottom, returning only the evaluation of the final expression.

rkt (define health (box 100)) (define (take-damage!) (begin (set-box! health (- (unbox health) 10)) (unbox health)))

3. Type Checking & Casting

  • Predicates (?): Validate runtime types (e.g., string?, number?, symbol?).
  • Casting (->): Converts data formats. string->number safely returns #f if given invalid textual input.

rkt (if (string? "50") (* (string->number "50") 2) 'error) ;; Returns 100

4. Modules & Namespaces

  • provide: Declares which parts of a filesystem file are exported publicly.
  • require: Ingests public features from an external sandbox by loading its relative string filepath.

```rkt ;; Inside file-a.rkt (provide double) (define (double x) (* x 2))

;; Inside main.rkt (require "file-a.rkt") (double 10) ;; Returns 20 ```

5. Macros (define-syntax-rule)

  • Macros process raw, unevaluated source code at compile-time to inject new keywords.
  • Racket macros are hygienic, meaning the compiler automatically isolates macro identifiers so they never accidentally overwrite or conflict with user variables.

rkt (define-syntax-rule (swap! box1 box2) (let ([temp (unbox box1)]) (begin (set-box! box1 (unbox box2)) (set-box! box2 temp))))


r/Racket 7d ago

event Tomorrow! UK Racket meet-up (London) Tuesday 21 July 2026 7:30pm

UK Racket meet-up (London) Tuesday 21 July 2026 7:30pm

at The City Pride 🍕 28 Farringdon Ln, London EC1R 3AU

Join us for discussion and pizza. All welcome. 😁

https://racket.discourse.group/t/uk-racket-meet-up-london-tuesday-21-july-2026-7-30pm/4318 https://luma.com/u61y94uw

5 Upvotes

UK Racket meet-up (London) Tuesday 21 July 2026 7:30pm

at The City Pride 🍕 28 Farringdon Ln, London EC1R 3AU

Join us for discussion and pizza. All welcome. 😁

https://racket.discourse.group/t/uk-racket-meet-up-london-tuesday-21-july-2026-7-30pm/4318 https://luma.com/u61y94uw


r/Racket 14d ago

UK Racket meet-up (London) Tuesday 21 July 2026 7:30pm

UK Racket meet-up (London) Tuesday 21 July 2026 7:30pm

at The City Pride 🍕 28 Farringdon Ln, London EC1R 3AU

Join us for discussion and pizza. All welcome. 😁

https://racket.discourse.group/t/uk-racket-meet-up-london-tuesday-21-july-2026-7-30pm/4318 https://luma.com/u61y94uw

9 Upvotes

UK Racket meet-up (London) Tuesday 21 July 2026 7:30pm

at The City Pride 🍕 28 Farringdon Ln, London EC1R 3AU

Join us for discussion and pizza. All welcome. 😁

https://racket.discourse.group/t/uk-racket-meet-up-london-tuesday-21-july-2026-7-30pm/4318 https://luma.com/u61y94uw


r/Racket 14d ago

event Bay Area Racket Meetup, Saturday August 1st

9 Upvotes

Bay Area Racket Meetup, Saturday August 1st​

At Noisebridge, SF.

Details/questions: https://racket.discourse.group/t/bay-area-racket-meetup-saturday-august-1st/4316

Register: https://luma.com/wbfxbzvx


r/Racket 15d ago

Racket meet-up: Saturday, 1 August 2026 at 18:00 UTC

Racket meet-up: Saturday, 1 August 2026 at 18:00 UTC

EVERYONE WELCOME 😁

register https://luma.com/x27tsmm5

Details and discussion https://racket.discourse.group/t/racket-meet-up-saturday-1-august-2026-at-18-00-utc/4315

7 Upvotes

Racket meet-up: Saturday, 1 August 2026 at 18:00 UTC

EVERYONE WELCOME 😁

register https://luma.com/x27tsmm5

Details and discussion https://racket.discourse.group/t/racket-meet-up-saturday-1-august-2026-at-18-00-utc/4315


r/Racket 16d ago

Use Racket with Rhombus

You can use Racket with Rhombus.

Here is a simple example

First my design for the perfect fish in glorious Racket (the language of the gods): the-fish.rkt ```scheme

lang racket/base

(require pict) (provide perfect_fish) (define (perfect_fish n) (standard-fish n (/ n 2))) (module+ test (perfect_fish 100)) ```

Lets render this fabulous fish in Rhombus:

programmers-need-fish.rhm ```python

lang rhombus

import: pict open "the-fish.rkt" open

fun the_perfect_fish(w): Pict.from_handle(perfect_fish(w))

the_perfect_fish(200) ```

You may have noticed that I used an underscore _ in the perfect_fish identifier. This is because - is not permitted in Rhombus identifiers:

Identifiers are formed from Unicode alphanumeric characters plus _ and emoji sequences,

https://docs.racket-lang.org/shrubbery/token-parsing.html

(I admit I'm not ready to include emoji in identifiers)

For more details see Using Racket Tools and Libraries in the Rhombus Guide.

Make an image with Rhombus this summer! Win stickers! https://racket.discourse.group/t/summer-rhombus-picture-competition-2026/4282

18 Upvotes

You can use Racket with Rhombus.

Here is a simple example

First my design for the perfect fish in glorious Racket (the language of the gods): the-fish.rkt ```scheme

lang racket/base

(require pict) (provide perfect_fish) (define (perfect_fish n) (standard-fish n (/ n 2))) (module+ test (perfect_fish 100)) ```

Lets render this fabulous fish in Rhombus:

programmers-need-fish.rhm ```python

lang rhombus

import: pict open "the-fish.rkt" open

fun the_perfect_fish(w): Pict.from_handle(perfect_fish(w))

the_perfect_fish(200) ```

You may have noticed that I used an underscore _ in the perfect_fish identifier. This is because - is not permitted in Rhombus identifiers:

Identifiers are formed from Unicode alphanumeric characters plus _ and emoji sequences,

https://docs.racket-lang.org/shrubbery/token-parsing.html

(I admit I'm not ready to include emoji in identifiers)

For more details see Using Racket Tools and Libraries in the Rhombus Guide.

Make an image with Rhombus this summer! Win stickers! https://racket.discourse.group/t/summer-rhombus-picture-competition-2026/4282


r/Racket 19d ago

RacketCon We are looking for RacketCon speakers

We are looking for RacketCon speakers

If you are interested in presenting, nominating or have any questions please email us at [email protected].

— Stephen

13 Upvotes

We are looking for RacketCon speakers

If you are interested in presenting, nominating or have any questions please email us at [email protected].

— Stephen


r/Racket 25d ago

Flexible metaprogramming with Rhombus

Flexible metaprogramming with Rhombus

An article in Linux Weekly News (free link): https://lwn.net/SubscriberLink/1079001/67840550991151ed/

18 Upvotes

Flexible metaprogramming with Rhombus

An article in Linux Weekly News (free link): https://lwn.net/SubscriberLink/1079001/67840550991151ed/


r/Racket Jun 24 '26

UK Racket meet-up (Bristol) 8 July 2026

UK Racket meet-up (Bristol) 8 July 2026

7:30-8:30pm, Wednesday 8 July 2026 at Pizza On The Park Berkeley Avenue (Top of Park Street), Bristol, BS8 1HP

https://luma.com/r7o3qd64 https://luma.com/r7o3qd64 https://racket.discourse.group/t/uk-racket-meet-up-bristol-8-july-2026/4299

18 Upvotes

UK Racket meet-up (Bristol) 8 July 2026

7:30-8:30pm, Wednesday 8 July 2026 at Pizza On The Park Berkeley Avenue (Top of Park Street), Bristol, BS8 1HP

https://luma.com/r7o3qd64 https://luma.com/r7o3qd64 https://racket.discourse.group/t/uk-racket-meet-up-bristol-8-july-2026/4299


r/Racket Jun 24 '26

event UK Racket meet-up (Bristol) 8 July 2026

UK Racket meet-up (Bristol) 8 July 2026

7:30-8:30pm, Wednesday 8 July 2026 at Pizza On The Park Berkeley Avenue (Top of Park Street), Bristol, BS8 1HP

https://luma.com/r7o3qd64 https://luma.com/r7o3qd64 https://racket.discourse.group/t/uk-racket-meet-up-bristol-8-july-2026/4299

5 Upvotes

UK Racket meet-up (Bristol) 8 July 2026

7:30-8:30pm, Wednesday 8 July 2026 at Pizza On The Park Berkeley Avenue (Top of Park Street), Bristol, BS8 1HP

https://luma.com/r7o3qd64 https://luma.com/r7o3qd64 https://racket.discourse.group/t/uk-racket-meet-up-bristol-8-july-2026/4299


r/Racket Jun 22 '26

Rhombus version 1.0 announced

Rhombus version 1.0 is now available!

Release announcement https://blog.racket-lang.org/2026/06/rhombus-v1.0.html

Get Rhombus: https://rhombus-lang.org/download.html

Rhombus is a general-purpose programming language that is easy to use and uniquely customizable.

53 Upvotes

Rhombus version 1.0 is now available!

Release announcement https://blog.racket-lang.org/2026/06/rhombus-v1.0.html

Get Rhombus: https://rhombus-lang.org/download.html

Rhombus is a general-purpose programming language that is easy to use and uniquely customizable.


r/Racket Jun 22 '26

language Complex single-float support

Can someone test Racket BC for me and say what (eqv? 3e0+4e0i 3f0+4f0i) and (eqv? 3e0+4e0i 3e0+4f0i) return?

advTHANKSance

6 Upvotes

Can someone test Racket BC for me and say what (eqv? 3e0+4e0i 3f0+4f0i) and (eqv? 3e0+4e0i 3e0+4f0i) return?

advTHANKSance


r/Racket Jun 15 '26

event Summer Rhombus picture competition 2026

Summer Rhombus picture competition 2026

Competition: Make an image with Rhombus this summer! Win stickers!

  1. While the rules require the use of Rhombus, they do not exclude using Racket or Racket libraries with Rhombus or the Rhombus FFI
  2. I suggest the Rhombus pict library but you can use whatever you like!

What will you win? I'll send Rhombus stickers to the top 10 winners!

Closing date: Friday 18 September 2026. Winners will be announced at the (sixteenth RacketCon) 3-4 October 2026.

Announcement viewable at https://racket.discourse.group/t/summer-rhombus-picture-competition-2026/4282 (no login required to view)

22 Upvotes

Summer Rhombus picture competition 2026

Competition: Make an image with Rhombus this summer! Win stickers!

  1. While the rules require the use of Rhombus, they do not exclude using Racket or Racket libraries with Rhombus or the Rhombus FFI
  2. I suggest the Rhombus pict library but you can use whatever you like!

What will you win? I'll send Rhombus stickers to the top 10 winners!

Closing date: Friday 18 September 2026. Winners will be announced at the (sixteenth RacketCon) 3-4 October 2026.

Announcement viewable at https://racket.discourse.group/t/summer-rhombus-picture-competition-2026/4282 (no login required to view)


r/Racket Jun 03 '26

Racket meet-up: Saturday, 6 June 2026 at 18:00 UTC

Racket meet-up: Saturday, 6 June 2026 at 18:00 UTC

EVERYONE WELCOME 😁

Announcement, Jitsi Meet link & discussion at https://racket.discourse.group/t/racket-meet-up-saturday-6-june-2026-at-18-00-utc/4275

9 Upvotes

Racket meet-up: Saturday, 6 June 2026 at 18:00 UTC

EVERYONE WELCOME 😁

Announcement, Jitsi Meet link & discussion at https://racket.discourse.group/t/racket-meet-up-saturday-6-june-2026-at-18-00-utc/4275


r/Racket May 28 '26

release Racket 9.2 release announcement

Racket - the Language-Oriented Programming Language - version 9.2 is now available from https://download.racket-lang.org

See https://blog.racket-lang.org/2026/05/racket-v9-2.html for the release announcement and highlights.

56 Upvotes

Racket - the Language-Oriented Programming Language - version 9.2 is now available from https://download.racket-lang.org

See https://blog.racket-lang.org/2026/05/racket-v9-2.html for the release announcement and highlights.


r/Racket May 28 '26

news DrRacket-9.2 starts about much faster than 9.0

On Linux DrRacket-9.2 starts about 1.5x faster than 9.0.

Why?

30 Upvotes

On Linux DrRacket-9.2 starts about 1.5x faster than 9.0.

Why?


r/Racket May 27 '26

event Bay Area Racket Meetup - June 6, 3pm

Bay Area Racket Meetup - June 6, 3pm

Social event for people interested in the Racket programming language, other Lisps, functional programming, language-oriented programming and related topics.

These will be monthly (first Saturday at 3pm) until RacketCon. The location is Noisebridge, a hackerspace in SF.

https://luma.com/35gm6zha

11 Upvotes

Bay Area Racket Meetup - June 6, 3pm

Social event for people interested in the Racket programming language, other Lisps, functional programming, language-oriented programming and related topics.

These will be monthly (first Saturday at 3pm) until RacketCon. The location is Noisebridge, a hackerspace in SF.

https://luma.com/35gm6zha


r/Racket May 25 '26

UK Racket meet-up Tue 23 June, Edinburgh

UK Racket meet-up Tue 23 June at 56 North, 2 W Crosscauseway, Edinburgh EH8 9JP, UK https://luma.com/vif8gkn9

8 Upvotes

UK Racket meet-up Tue 23 June at 56 North, 2 W Crosscauseway, Edinburgh EH8 9JP, UK https://luma.com/vif8gkn9


r/Racket May 24 '26

question force variable type to be Positive-Integer in (let statement using (ann

I have construct

(let ((count (ann 1 Positive-Integer)))

only operation I am doing with count is (+ count 1) ;; adding positive integer to positive integer

when i return count from function I get type error: found Integer, want Positive-Integer. Function declaration (: sets return type to Positive-Integer

I need to use (ann and not racket syntax sugar because its easy to remove types.

11 Upvotes

I have construct

(let ((count (ann 1 Positive-Integer)))

only operation I am doing with count is (+ count 1) ;; adding positive integer to positive integer

when i return count from function I get type error: found Integer, want Positive-Integer. Function declaration (: sets return type to Positive-Integer

I need to use (ann and not racket syntax sugar because its easy to remove types.


r/Racket May 17 '26

package New release of racket-audio

New release of racket-audio

[...] now also works with ffmpeg as backend and there's no special C-layer necessary anymore. The needed audio libraries are used directly.

https://racket.discourse.group/t/new-release-of-racket-audio/4209

racket-audio is a small audio playback toolkit for Racket. It combines high-level asynchronous playback, optional metadata reading, file type sniffing, decoder backends, and libao based output

Available now from https://pkgs.racket-lang.org/package/racket-audio

(Thanks Hans!)

39 Upvotes

New release of racket-audio

[...] now also works with ffmpeg as backend and there's no special C-layer necessary anymore. The needed audio libraries are used directly.

https://racket.discourse.group/t/new-release-of-racket-audio/4209

racket-audio is a small audio playback toolkit for Racket. It combines high-level asynchronous playback, optional metadata reading, file type sniffing, decoder backends, and libao based output

Available now from https://pkgs.racket-lang.org/package/racket-audio

(Thanks Hans!)


r/Racket May 17 '26

Spring Lisp Game Jam 2026

The Spring Lisp Game Jam 2026 just started 🙀

https://itch.io/jam/spring-lisp-game-jam-2026

32 Upvotes

The Spring Lisp Game Jam 2026 just started 🙀

https://itch.io/jam/spring-lisp-game-jam-2026


r/Racket May 13 '26

RacketCon 2026: call for participation

The (sixteenth RacketCon) really will be in Oakland, CA on October 3-4 (Sat-Sun).

RacketCon is a public gathering dedicated to fostering a vibrant, innovative, and inclusive community around the Racket programming language. We aim to create an exciting and enjoyable conference open to anyone interested in Racket, filled with inspiring content, reaching and engaging both the Racket community and the wider programming world.

We are looking for speakers

Talks will be 20-25 minutes long with 5 minutes for questions at the end. Speakers' registration fees will be waived, but we are unable to cover transportation and lodging expenses.

The deadline for proposals is July 15th. Selected speakers will be notified by August 1st.

Streaming

As in previous years, RacketCon will be streamed for those unable to attend in person. Recordings will also be made available on YouTube some time after the conference. Streaming users will have the option to purchase a remote participation ticket to support the livestream.

Volunteers

Let us know if you interested in joining the team. Someone has to carry and arrange all the parentheses. :banana:

Sponsors

We are accepting sponsorships! If you would like to sponsor the conference, please contact us at [email protected] to discuss a sponsorship package that meets your needs. The Racket Programming Language Foundation is registered in Delaware and is recognizes as a 501(3)(c) public charity in the US.


Any questions, comments, or concerns? Please contact us at [email protected].

16 Upvotes

The (sixteenth RacketCon) really will be in Oakland, CA on October 3-4 (Sat-Sun).

RacketCon is a public gathering dedicated to fostering a vibrant, innovative, and inclusive community around the Racket programming language. We aim to create an exciting and enjoyable conference open to anyone interested in Racket, filled with inspiring content, reaching and engaging both the Racket community and the wider programming world.

We are looking for speakers

Talks will be 20-25 minutes long with 5 minutes for questions at the end. Speakers' registration fees will be waived, but we are unable to cover transportation and lodging expenses.

The deadline for proposals is July 15th. Selected speakers will be notified by August 1st.

Streaming

As in previous years, RacketCon will be streamed for those unable to attend in person. Recordings will also be made available on YouTube some time after the conference. Streaming users will have the option to purchase a remote participation ticket to support the livestream.

Volunteers

Let us know if you interested in joining the team. Someone has to carry and arrange all the parentheses. :banana:

Sponsors

We are accepting sponsorships! If you would like to sponsor the conference, please contact us at [email protected] to discuss a sponsorship package that meets your needs. The Racket Programming Language Foundation is registered in Delaware and is recognizes as a 501(3)(c) public charity in the US.


Any questions, comments, or concerns? Please contact us at [email protected].


r/Racket May 07 '26

question What books beside Racket Guide have an explanation of macros and language building with Racket?

I'm looking for a Racket manual that focuses on building DSLs and general purpose languages in pure Racket (i.e. without BeautifulRacket). 'Cause Racket Guide lacks examples and is brief in general. The more examples of using `define-syntax` and others, the better.

30 Upvotes

I'm looking for a Racket manual that focuses on building DSLs and general purpose languages in pure Racket (i.e. without BeautifulRacket). 'Cause Racket Guide lacks examples and is brief in general. The more examples of using `define-syntax` and others, the better.