Questions tagged [racket]
Racket (formerly named PLT Scheme) is a general purpose, multi-paradigm programming language in the Lisp/Scheme family.
7 questions
12votes
7answers
4kviews
Immutability across programming languages
I'm quite confused about the concept of mutability (or mutation?), especially across different languages. In a language like Python: x = 10 x = 20 I believe this is called shadowing (or rebinding) ...
12votes
1answer
2kviews
What practical problem results from lack of hygienic macros in Clojure?
I've heard that Clojure macros are easier to write but not as reliable as Racket's hygienic macros. My question has 2 parts: How does gensym differ from hygienic macros? What do Racket macros provide ...
0votes
1answer
820views
Two dimensional matrix-like data type using lists and/or mutable lists
I am trying to think of an implementation of a two dimensional matrix-like data type. Normally I would take an array of arrays but I'm bound to a relatively low language level which only provides ...
3votes
0answers
550views
Abstract List Functions in Racket/Scheme
I'm completely stuck on a problem to write a function that does NOT use recursion, locals, or lambda. Only abstract list functions can be used. The function must input a list of positive integers, ...
1vote
1answer
186views
Why is (f . l) not allowed and equal to (apply f l)?
In scheme when defined (define f (lambda (a b c d) d)) (define l (list 'a 'b 'c 'd)) Why it does not do argument destructuring? I mean arguments should evaluate first, why destructuring is not part ...
3votes
3answers
2kviews
If Scheme is untyped, how can it have numbers and lists?
Scheme is said to be just an extension of the Untyped Lambda Calculus (correct me if I am wrong). If that is the case, how can it have Lists and Numbers? Those, to me, look like 2 base types. So I'd ...
4votes
1answer
465views
Why does DrRacket IDE considers some identifiers as "symbols" and some as "keywords"? What is the difference?
Why does DrRacket (kind of Scheme) IDE highlights some of the identifiers as "keywords" (for example define, lambda, send*), and the others as "symbols" (user defined identifiers, +, -, abs, send, ...