Questions tagged [racket]
Racket (formerly named PLT Scheme) is a general purpose, multi-paradigm programming language in the Lisp/Scheme family.
7 questions
12
votes
7
answers
4k
views
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) ...
12
votes
1
answer
2k
views
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 ...
0
votes
1
answer
814
views
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 ...
3
votes
0
answers
547
views
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, ...
1
vote
1
answer
184
views
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 ...
3
votes
3
answers
2k
views
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 ...
4
votes
1
answer
465
views
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, ...