Re: [racket-users] How to learn the *core* of Racket?

2021-11-06 Thread David Storrs
Hi Yushuo,

On Sat, Nov 6, 2021 at 5:33 AM Yushuo Xiao  wrote:

> I've learned some Racket, and can comfortably program in it, but I only
> learned it as an ordinary language, much like Scheme. I know Racket is much
> more than that, for its "language-oriented" features. Languages become a
> first-class member in Racket, and to my understanding, even "#lang racket"
> is just a language built on some core. What I want to know is, what's the
> very core of Racket?


It depends on where you stop measuring.  You could argue that...

...#lang racket  is the core, because it's what comes in the installation.
Things like gregor, struct-plus-plus, and csv-reading are packages that you
install from http://pkgs.racket-lang.org/ and are therefore outside the
core.

...#lang racket/base is the core, because it's the most limited set of
Racket that comes by default.  It mostly consists of only the basic list
manipulation functions, and if you want to use other things then you need
to include relevant libraries such as racket/match (giving you the 'match'
special form) or racket/format (giving you the ~a function), or
racket-string (giving you the string-length function), etc.

...Raw lambdas and a few special forms are the core, because everything
compiles down to those.  (Approximately speaking.)

...Lambda calculus is the core, because it's what all LISP descendants are
based on.

Once you start talking about other Racket languages with different syntax
and semantics, well then all bets are off.


Does this help?


> I've noticed that in the Racket Reference there is a section "Fully
> Expanded Programs", which seems the very core of Racket. But it still takes
> an S-expression form, and apparently Racket allows language customization
> on the syntax level. I wonder if the S-expression language is the core of
> Racket, or the entire Racket has a different structure?
>
> I would really appreciate it if anyone could explain it in a simple way or
> could point out some good (and short) material for me to read. The Racket
> Reference is too long, and I believe the core Racket can be well explained
> in a much shorter piece of text, if I just look for a brief understanding.
>
> Also my question may be confusing, because I don't understand Racket well
> at all. Feel free to correct me or ask for clarification. Thanks in advance!
>
> --
> 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 racket-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/63b1134b-16e4-4447-828a-1e607013bd7cn%40googlegroups.com
> 
> .
>

-- 
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 racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAE8gKodVp3XKRnQc165F%2Bav001L86BOvTE_sPvdrpkx5FY4VdQ%40mail.gmail.com.


[racket-users] Racket v8.3

2021-11-06 Thread 'John Clements' via Racket Users
Racket version 8.3 is now available from

https://racket-lang.org/


* Racket removes syntax arming and disarming in favor of a simpler
 system of protected syntax operations, along with other updates to the
 syntax system.

* DrRacket has improved support for custom #lang languages.

* Typed Racket improves precision for type-checking of non-polymorphic
  structures, existential types, and certain binding forms.

* Scribble HTML output gains a button to show / hide the table of
  contents on mobile platforms.

* Redex's stepper's GUI shows IO-judgment form rule names.

* Many bug fixes!


The following people contributed to this release:

Adam Zaiter, Alex Knauth, Alexis King, Ayman Osman, Ben Greenman, Bob
Burger, Bogdan Popa, Brian Adkins, Cameron Moy, Carl Eastlund, Dan
Holtby, Dominik Pantůček, Eli Barzilay, Ethan Leba, Fred Fu, Greg
Hendershott, Gustavo Massaccesi, J. Ryan Stinnett, Jason Hemann, Jay
McCarthy, Jesse Alama, Joel Dueck, John Clements, Jonathan Simpson,
Kartik Sabharwal, Laurent Orseau, Lehua Ding, Maciej Barć, Marc Burns,
Matthew Flatt, Matthias Felleisen, Michael Ballantyne, Mike Sperber,
Noah Ma, Paulo Matos, Pavel Panchekha, Philip McGrath, Robby Findler,
Ryan Culpepper, Ryan Sundberg, Sage Gerard, Sam Tobin-Hochstadt,
Shu-Hung You, Sorawee Porncharoenwase, Stefan Schwarzer, Stephen De
Gabrielle, Vincent St-Amour, William J. Bowman, minor-change, and yjqww6

Feedback Welcome

-- 
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 racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/7a93648b-3e64-4c94-8932-eb8d1de887b2%40mtasv.net.


[racket-users] How to learn the *core* of Racket?

2021-11-06 Thread Yushuo Xiao
I've learned some Racket, and can comfortably program in it, but I only 
learned it as an ordinary language, much like Scheme. I know Racket is much 
more than that, for its "language-oriented" features. Languages become a 
first-class member in Racket, and to my understanding, even "#lang racket" 
is just a language built on some core. What I want to know is, what's the 
very core of Racket?

I've noticed that in the Racket Reference there is a section "Fully 
Expanded Programs", which seems the very core of Racket. But it still takes 
an S-expression form, and apparently Racket allows language customization 
on the syntax level. I wonder if the S-expression language is the core of 
Racket, or the entire Racket has a different structure?

I would really appreciate it if anyone could explain it in a simple way or 
could point out some good (and short) material for me to read. The Racket 
Reference is too long, and I believe the core Racket can be well explained 
in a much shorter piece of text, if I just look for a brief understanding.

Also my question may be confusing, because I don't understand Racket well 
at all. Feel free to correct me or ask for clarification. Thanks in advance!

-- 
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 racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/63b1134b-16e4-4447-828a-1e607013bd7cn%40googlegroups.com.