Solutions for the first edition are available at
Also, you will probably find a faster response for questions like this at the
(You might even find a pointer to 2e solutions? not sure)
>> ocean with sendgrid or mailgun). Receiving email is handled by the 'mail
>> receiver container' if you are self hosting.
>> It was a casual conversation, and I don't know him well. It would be good
>> to know if other PL communities have done this
Your points are well taken, and moving away from a traditional mailing list is
not a decision that we took lightly; the fact is that we were simply *failing*
when it came to moderating the mailing list as run by google groups, and
running one through mailman was even worse. It appears that
Following up on feedback from y’all, we’ve deleted the terms of service for the
racket discourse group.
Hopefully this (lack of) TOS allays concerns about participation in the
You received this message because you are subscribed
I’m sorry to hear that! Several things to check/try
1) I see the confirmation email coming from “rac...@discoursemail.com”, with
subject line "[Racket Discussions] Confirm your new account”
Maybe it’s in your junk folder?
2) You can always ignore the given url and just go to
Terms of service: Can't believe I signed my rights away to company_name
> without even reading applicable_laws in jurisdiction_here.
> On Mon, Nov 22, 2021 at 9:19 AM Sage Gerard wrote:
> Mozilla's notes on their own instance summarizes an email-exclusive
> workflow well.
Yes, I believe that replies by email are currently enabled. Here, let me test
Oh, yeah… can’t do that, the incoming email address isn’t the one that I send
from. Sigh. Perhaps someone else can try this?
One thing that I know isn’t set up yet is starting a new topic by email. I know
1) Yes, Sam mentioned the discourse group at RacketCon, and there was some
“hallway” discussion about it.
2) No, no sponsor was involved. Yikes! Indeed, I’m not aware that Racket *has*
any sponsors currently, aside from the research and infrastructure grants that
I’m … super confused by this message. Did I miss something? I feel like this
message has a subtext that I’m completely missing.
> On Nov 22, 2021, at 08:06, Etan Wexler wrote:
> The stewards of Racket have decided that it’s time to give up on the mailing
> list (that is, racket-users,
I’m actually very heartened to see the boilerplate here; it sounds like this is
something we can edit, and not something imposed by Discourse. If that’s the
case, then it certainly seems likely that we can find some language (or, more
importantly, *lack* of language) that makes more of us
> If this is the official moment for giving up on this mailing list, it would
> probably be good to turn up these settings to some draconian level anyway,
xample, FAQs probably should
> go to the wiki. There's no need to clutter anyone's inbox for this type of
> On Sun, Nov 21, 2021 at 10:09 AM 'John Clements' via Racket Users
> TL;DR: Go to
TL;DR: Go to
and sign up for Racket Discourse (https://racket.discourse.group/)
# Thoughts behind the move:
Over time, it has become steadily more apparent that email-only
mailing lists are an outdated communication medium for the Racket
> On Nov 11, 2021, at 03:04, Yushuo Xiao wrote:
> Thank you for your comprehensive answer! It helps a lot. I also read more
> about Racket after I posted the question and now I think that the few special
> forms (as stated in "fully expanded program") are the core. All languages
> built in
Racket version 8.3 is now available from
* Racket removes syntax arming and disarming in favor of a simpler
system of protected syntax operations, along with other updates to the
* DrRacket has improved support for custom #lang languages.
In the text below, you refer to the “public” interface. Can I ask what you mean
by “public” in this context?
> On Oct 29, 2021, at 11:16 AM, Brian Beckman wrote:
> I believe that run time will be the most plausible use case. I may write
> macros that refer to struct-procedure names at
rk like you'd want? Based on Alex's last comment
> on the issue, it seems hard to give a predicate that matches the type.
> (Whenever I've wanted `partition` in typed code, I was always able to
> use 2 filters instead.)
> On 10/5/21, 'John Clements' via Racket User
I was somewhat surprised to see today that I can’t use a predicate with both
positive and negative propositions in the way I would expect with partition:
> (:print-type partition)
(All (a b)
(-> (-> b Any : #:+ a) (Listof b) (values (Listof a) (Listof b)))
(-> (-> a Any) (Listof
I think I wouldn’t say “accepts”; I usually reserve this term for functions,
but that’s a minor quibble.
I think I would call these “clauses”, as in
“With-handlers allows the user to specify exception-handling clauses. Each one
includes two parts: a predicate, indicating whether blah blah
I use Greg Hendershott’s excellent and trouble-free ‘frog’ library. How would
your code relate to this?
> On Aug 30, 2021, at 10:57, Dexter Lagan wrote:
> Hi again,
> I've been working on porting my Newstrap Web framework from newLISP to
> Racket. I got most of it done and am
Racket version 8.2 is now available from
* Racket CS improved the performance of large-integer arithmetic.
* Racket has improved support for layered and tethered installation.
* Racket CS
Allow me to be very slightly less cautious than Robby: it may not be clear from
this text that nearly every BSL program is also a Racket program *and* a Scheme
program. If you work through HtDP—or even a part of it—you will be, I claim,
both a Scheme and a Racket programmer. (And perhaps also
Good to hear from you! There are actually a number of different books that I
might suggest. In order to best direct you, it might be useful to know
something about your programming background?
> On Jul 13, 2021, at 10:13, joseph turco wrote:
> Im am looking
Hearing about this for the first time, seems like a fantastic idea.
10 seconds of experience:
1) It wasn’t immediately clear to me that the links were the names of channels.
It seems painfully obvious to me now, but perhaps it’s worth starting all the
names with hashes?
2) Clicking on the
Yep, I think that’s probably on the money. I guess this is really a classic
example of the problem with writing code using internet search.
> On May 7, 2021, at 4:38 PM, Ben Greenman wrote:
> On 5/7/21, Shu-Hung You wrote:
>> Not that I have any idea of what's going on, but
Racket has the ability to read a variety of different image files. I would go
first to 2htdp/image’s “bitmap/file” to read images. “save-image” can write
images (but only as png files). I believe there are also an array of
lower-level image manipulation functions that are likely to have a less
Ah! My apologies. I’ve added your name to our “preferred names” file, and I
hope not to make this mistake again.
> On May 8, 2021, at 13:38, Dexter Lagan wrote:
> Hello sir,
> Thank you ! My name is actually Dexter Santucci. Apologies for the
> confusion. My email
Background: I teach a PL course, using Shriram’s PLAI. Many of the assignments
require students to maintain an environment mapping symbols to values. Shriram
illustrates a nice easy way to do this, as a list of two-element structures.
You can also use an immutable hash. Fine. So I’m grading a
It looks to me like you probably need to edit your “config.rktd” file:
On my machine (macOS using macports), for instance I have do do this for every
Racket version 8.1 is now available from
- DrRacket tabs can be dragged, and have new close buttons.
- Racket CS supports cross-compilation using `raco exe`.
- Racket CS supports Android on
ke this work, but Typed
> Racket should probably avoid this situation.
> On Fri, Apr 30, 2021, 2:07 AM 'John Clements' via Racket Users
> It seems that the conversion of TR types to contracts can result in contracts
> like (or/c (cons/c any/c any/c) (cons/c
It seems that the conversion of TR types to contracts can result in contracts
like (or/c (cons/c any/c any/c) (cons/c any/c any/c)) that apparently cause
errors when run.
I’m too tired to do a good job of providing a full example… no, actually, it’s
pretty easy. Run this program:
This is the second time I’ve heard of matrix.org this week. Time to check it
> On Apr 20, 2021, at 1:45 AM, Yury Bulka
> Just my 5 cents...
> Recently I had to register on a discord "server" to ask a question
> within another community - and the experience was of a
I’m confused by your assertion that define-values can’t be used recursively.
Here’s a program that does this:
(λ (x) (if (= x 0) 1 (* x (fact (sub1 x))
Am I misunderstanding your message?
> On Apr 17, 2021, at 05:02, Dan Synek
What if he has directories that aren’t part of an installed package? That was
my concern, and why I suggested manually deleting compiled subdirs.
> On Apr 13, 2021, at 18:58, Philip McGrath wrote:
> On Tue, Apr 13, 2021 at 8:21 PM 'John Clements' via Racket Users
Thanks for clarifying!
It sounds to me like the solution might be much much simpler than re-installing
an earlier version of racket. Here’s what I recommend.
1) Delete all of the “compiled” subdirectories in your development path.
2) run “raco setup”.
It seems likely to me that this will solve
Did you install racket using a package manager, perhaps from the racket PPA?
(I’m guessing the answer is yes, since this seems like the most likely
situation to have caused an unintentional upgrade.)
If so, I think you should generally get the right behavior from using that same
Hmm… that’s a new one to me. It sounds like there’s a setting that can be
toggled, I’m not quite sure what the ramifications of toggling that setting
> On Apr 13, 2021, at 1:05 PM, Don Green wrote:
> "You do not have permission to respond to author in this group."
raco pkg remove is definitely not what you want.
In general, I know there are languages (ocaml, haskell, rust) that put their
package managers “outside” of the currently installed version, so it might make
sense that a package manager command could be used to change to an earlier
I *always* use DrRacket… but I admit I may not understand the indenting part of
In DrRacket, when you hit the “tab” key, it should move the text on the line to
the “correct” position, according to Racket’s indentation rules. Also, whenever
you hit return, the cursor should be
Definitely! What’s up?
> On Feb 17, 2021, at 10:36 PM, Rohan Posthumus
> Good morning,
> I am new to Racket and want to know where I can ask questions if I do not
> understand something. Is this the correct platform?
> Kind regards
rik Boom wrote:
>>> On Sat, Feb 13, 2021 at 09:17:26PM -0500, 'John Clements' via Racket Users
>>>> *** Racket 8.0 is here! ***
>>>> Racket version 8.0 is now available from
Help me out: which platform are you referring to?
> On Feb 16, 2021, at 8:10 AM, Hendrik Boom wrote:
> On Sat, Feb 13, 2021 at 09:17:26PM -0500, 'John Clements' via Racket Users
>> *** Racket 8.0 is here! ***
>> Racket version 8.0 is now
*** Racket 8.0 is here! ***
Racket version 8.0 is now available from
Racket 8.0 marks the first release where Racket CS is the default
implementation. Creating, polishing, and adopting Racket CS has been a
4-year effort involving the entire Racket community. At this
In order to allow static compilation, the path in a (file …) require must be a
It sounds like you might be looking for “dynamic-require” ?
Apologies if I’m misunderstanding you.
> On Feb 2, 2021, at 3:20 PM, thro...@gmail.com wrote:
> I can't seem to build
FWIW, I recall problems like this as well, about four years ago. I think we
wound up resetting it manually, at the time.
> On Feb 1, 2021, at 8:48 AM, Jay McCarthy wrote:
> I just checked it and I got an email, but it was put into spam.
> If you can't identify a problem on your
I don’t think we were planning on having those. It looks like the last time we
made 32-bit binaries available was for version 7.3, in May 2019.
> On Jan 26, 2021, at 5:31 AM, Ed Kademan wrote:
> Will Racket 8 have 32-bit linux binaries available for download?
Hello, most excellent Racket Users!
Version 188.8.131.520 is now available for testing from
(Note that this is not available from the usual download site.)
If all goes well, we will turn this version into a v8.0 release
within a couple of
Are you using the “How To Design Programs” textbook? It’s free, online, and
written by the team that developed Racket:
Indeed, it would not be a stretch to say that Racket and this textbook are part
of the same project.
How To Design Programs (or
It looks to me like there is a “My membership settings” pane in the left of the
google groups web interface that allows you to specify the “email used for
membership”. I conjecture that this would control the delivery of group
e-mails. I also strongly suspect that this will only allow you to
If you’re specifically interested in
1) Compilers, and
I think it’s hard to do better than Jeremy Siek’s Essentials of Compilation. He
comes from the Indiana group, as, indirectly, does just about everything around
here, and his approach is very closely related to Dybvig/Chez,
version of libedit is
included with Racket.
Best to everyone,
> On Nov 2, 2020, at 4:10 PM, 'John Clements' via Racket Users
> Racket version 7.9 is now available from
> * Racket CS may become the de
Racket version 7.9 is now available from
* Racket CS may become the default Racket implementation in the next
release. If, between this release and the next, no bugs are discovered
in Racket CS that are more serious than those typically discovered in
> On Tue, Jun 30, 2020 at 4:47 PM 'John Clements' via Racket Users
>> D’oh! Closing the loop on this one… it appears to me that this problem
>> occurred after running a “make” (that is, a BC make) in a directory in which
>> I’d bee
It depends a lot on what you mean by a “Lisp-y” language. I’m certainly not
going to disagree with the sentiments expressed in the stack overflow post that
Dan Prager posted… after all, I wrote the top-posted one! You’re asking a
question about persuading a co-worker, though. In my opinion, the
Just checked out the gather space. It looks very cool. How about some easter
> On Oct 9, 2020, at 7:07 AM, Jay McCarthy wrote:
> To the friends and followers of Racket,
> You have produced thousands of commits since last Con. You have honored your
> ancestors and brought
I have a question about the new behavior.
(ObResearch: actually, I checked the drracket, racket, and gui repos, and I
couldn’t find any new push, so I couldn’t check the code myself.)
Does it simply strip newlines, as Jack suggested, or does it signal an error?
The latter seems less likely to
Shriram, have you ruled out the classic multi-paste prolem? It looks very much
like that’s what you’re seeing here.
That is, if you paste a string that ends with a newline into the “do what I
mean” box, it will appear still to be blank. So you paste it again. So you
paste it again. Eventually
Can you be more specific? Are there particular programs that you can point to?
I think the solution to your problem is going to depend a bit on the kind of
slowdowns that you’re seeing.
> On Sep 7, 2020, at 05:04, Denis Maier wrote:
> I've started working
Yes, there is documentation for this feature! Here are two ways to get it:
1) On a machine with 7.8 installed, run `raco docs prop:struct-field-info` at
the command line, or (equivalently) highlight the word in drracket and hit F1.
Both of these open a web browser window pointed at your local
This release announcement mistakenly omitted two important contributors: Tim
Brown, and Dionna Amalie Glaze. Many thanks for their help!
> On Aug 3, 2020, at 09:35, John Clements wrote:
> Racket version 7.8 is now available from
Racket version 7.8 is now available from
* Racket CS may become the default Racket implementation in the next
release. With the improvements in this release, Racket CS provides all
of the functionality of Racket BC (the current default
Let me jump in here and say a few things that maybe everyone already knows :).
The stepper’s annotation places a *ton* of annotation on a computation, and
allows the reconstruction of the full computation. Errortrace does less, and
The both share a goal of allowing the
Ryan, I just tested your pull request, and… it doesn’t make much difference in
One important thing that I realize that I *totally neglected* to mention is
that I’m running CS racket here, not BC. Based on my experiments, it appears
1) CS is much faster than BC for both
> Paulo Matos
> 'John Clements' via Racket Users writes:
>> Bang! I was wrong. Here’s another similar trace:
>> raco setup: 6 running:
>> raco setup: 4 running: /jbc-utils/
To Advait Raykar:
In response to a Slack thread about a scrubbing interface for sound playback:
Looks like you folks covered all the bases on rsound. It sounds like the
"right" interface for this would be something that plays a file from start to
finish but also allows you to asynchronously
Good to hear from you!
Unfortunately, it’s going to be really hard to help you without more
Can you give us some context on what your goal is, here? Is this part of a
class? Your problem seems very under-specified.
> On May 27, 2020, at 8:53 PM, Med Ra wrote:
Okay, I could just be putting my foot in my mouth, here, but it sounds like
you’re describing the kinds of things that are typically done by a
type-checker. Have you considered adding a type-checking pass? It would contain
an environment that maps names like “h1” to “types” that indicate that
> So far, I have made two attempts to work around these issues: (1) by creating
> a metamodel-like data structure using Racket structs, and transforming syntax
> objects into struct instances; or (2) using syntax objects only and attaching
> context data to each of them as a syntax
100% yes but no. I am a long-time gradescope user, and I’ve been very happy
with it. However, my usage has been entirely with scanned paper exams. I like
the work that Gradescope has been doing, but I haven’t engaged with any of
their tools beyond the paper-scanning ones, so I definitely don’t
I think I maybe get this error every time I start up. Is this normal? I tried
moving all prefs files aside to see if it was a configuration error, and … same
In fact, even when I go into the three listed directories (pkgs/algol60,
collects/racket, collects/syntax/parse/lib) and delete
Racket version 7.7 is now available from
* Racket CS remains ready for production use---thanks to those who have
been putting it into practice to help iron out the remaining
kinks---and it now supports a C API for embedding into other
applications. See the
Wait! I got it! I forgot. It’s not hash-lang. I have to choose the language via
the “choose language…” menu.
Sorry for the noise, folks.
> On Apr 28, 2020, at 3:28 PM, 'John Clements' via Racket Users
> Okay, I have several things to say about Father Time.
Okay, I have several things to say about Father Time.
Thing one: running through these demos (frtime/demos) is kind of astonishing.
There just doesn’t seem to be enough code for it to do what it’s doing. The
father time programs are *incredibly* concise distillations of behavior. The
Alongside everything else, I started exploring writing code to post GraphQL
queries (specifically in order to interact with Canvas). The language’s syntax
is yet another needlessly complicated approximation to s-expressions, but I do
have some things working. Not sure if I should put together a
Are you asking because you’d like your own code using SXML to be typed, or
because you’d like the sxml implementation to be typed? I think another way of
asking this is: are you worried about bugs in your code, or about bugs in
Oleg’s code? I think that rewriting the sxml library into TR would
n Mac it's:
> > previous window: Shft + Cmd + ~
> > next window: Cmd + ~
> > or
> > previous window: Cmd +
> > next window: Cmd +
> > On Tue, Apr 21, 2020 at 4:29 PM 'John Clements' via Racket Users
> > wrote:
> > Here’s
> On Tue, Apr 21, 2020 at 4:29 PM 'John Clements' via Racket Users
> Here’s a question I have about both DrRacket and Emacs. It often happens in
> my workflow (grading files, for instance) that I want to set up a list of
> files, and then have an easy way to move forward o
Here’s a question I have about both DrRacket and Emacs. It often happens in my
workflow (grading files, for instance) that I want to set up a list of files,
and then have an easy way to move forward or back in that list (“next file”,
“previous file”). I see that emacs has a function called
First off: you’re very close.
Thing two: I think you need a clearer comment on the meaning of the “months”
vector. Your description does not actually say what the vector represents or
Thing three: Here’s my question to you. Suppose that I tell you a year and a
month and the result
Relevance: our build scripts make automated queries to GitHub.
Historically, GitHub has allowed authentication using query parameters; both a
user token and a client user/password pair could be specified as part of the
URL. It now appears that this is being deprecated, per
Many thanks! Should I cancel my pull request?
> On Mar 21, 2020, at 18:34, Robby Findler wrote:
> I've pushed something so that racket:text% will indent better when it
> doesn't have a display.
> On Fri, Mar 20, 2020 at 4:32 PM John Clements
>> Made a pull
Right, sorry, I should have added… doing *that* (eliminating the traces for
production code) is almost trivial: just make a macro that’s defined to
disappear when a flag is set:
(define-for-syntax production-flag #f)
(define-syntax (debug-only stx)
(syntax-case stx ()
It sounds like you’re looking for a way to have the trace inserted for you by a
debugging tool, so you don’t have to remember to take it out again later. This
wouldn’t be hard to do, but (as far as I know) no one’s taken the time to do it.
> On Mar 21, 2020, at 8:43 AM, Nicholas Papadonis
]: *** [plain-in-place] Error 2
make: *** [in-place] Error 2
make 240.77s user 75.70s system 398% cpu 1:19.32 total
> On Mar 20, 2020, at 3:11 PM, 'John Clements' via Racket Users
> Here’s the tail of a build of racket HEAD that just failed during a call to
> realloc(). I went
Here’s the tail of a build of racket HEAD that just failed during a call to
realloc(). I went back far enough to be sure I had a full record of what was
running on cores 0-7.
I strongly suspect this is not reproducible, and I don’t think there’s any
further information that would be useful
Made a pull request, many thanks!
> On Mar 20, 2020, at 1:36 PM, Robby Findler wrote:
> Looks right to me!
> On Fri, Mar 20, 2020 at 3:26 PM John Clements
> Could I add a note like this to the docs for the indentation function?
> “NB: indentation results depend on the
Could I add a note like this to the docs for the indentation function?
“NB: indentation results depend on the graphical context associated with the
object; it may be necessary to associate the object with an editor-canvas and
frame in order to get the expected results."
That text might not
(list table rx1 rx2 rx3 rx4))
> (send t tabify-all)
> (send t get-text)))
> (values untabbed tabbed lambda-tabbed)))
> On 3/20/20 3:12 PM, ‘John Clements’ via Racket Users wrote:
>> That actually solves a bunch of
Ah! this solves the issue. many thanks.
> On Mar 20, 2020, at 1:03 PM, Robby Findler wrote:
> Looks like you need a display or the text gets confused about how big
> (in pixels) characters really are:
> #lang racket/gui
> (require framework)
> (define f (new frame% [label ""]))
> (define t
That actually solves a bunch of problems for me… but strangely, not the initial
one. If, for instance, I tabify
using the tabify-all method, the line with the four gets an indentation of 2,
not 8. This is definitely different from DrRacket’s behavior.
Any idea how to fix this?
Please ignore, thanks.
You received this message because you are subscribed to the Google Groups
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
To view this discussion on the web visit
I’m sure many other people have something like this, but here’s “Lab 5” from my
currently-running PL course:
It introduces church numeral encodings and also this kind of true-false
encoding as small programming challenges in
Wait, we *all* have postmark libraries?
> On Jan 23, 2020, at 16:29, Jens Axel Søgaard wrote:
> Den tor. 23. jan. 2020 kl. 01.47 skrev Matthew Butterick :
> I concur on Postmark. For 2+ yrs I've used it with the Racket web server for
> mbtype.com. I pass the server settings to
Belatedly: awesome, many thanks!
> On Jan 27, 2020, at 02:39, Sean Kemplay wrote:
> This is a good (free) course that takes you the lates best practices of JS
> (getting more functional), react and then react native.
Have you taken a look at How To Design Programs? At the end of section one, you
should have what you need to build these games and others like them:
> On Feb 3, 2020, at 03:31, Wilzoo wrote:
> Hi guys, so I am working on rolling dice
"expected a string convertible to an integer, got: ~e"
> On Feb 15, 2020, at 10:37, 'John Clements' via Racket Users
>> (string2value "-1234"
> (string2value "-1234")
- : Integer
> (string2value "abcd")
- : Integer
Is this your desired behavior?
> On Feb 12, 2020, at 16:43, Alain De Vos wrote:
> I came to the following result as conversion function :
> #lang typed/racket
> (: string2value (-> String
Many thanks! These look good.
> On Jan 26, 2020, at 05:15, Darren Newton wrote:
> You Don't Know JS https://github.com/getify/You-Dont-Know-JS
> The tutorial
I’m grading code, and one of my students keeps leaving out spaces in weird
[(< x 3)(+ x 1)]
[else (f(g 9))])
I took a quick look in the style guide, and it doesn’t seem to have much to say
about this. Here’s what it has:
Don’t pollute your code with spaces at the
1 - 100 of 482 matches
Mail list logo