racketlang, to random
@racketlang@functional.cafe avatar

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

See https://racket.discourse.group/t/racket-v8-12-is-now-available/2709 for the release announcement and highlights.

Thank you to the many people who contributed to this release!

Feedback Welcome

racketlang, to badminton
@racketlang@functional.cafe avatar

Redeeming Open Source with Attribution Based Economics

By Sid Kasivajhula, feat. Michael Ballantyne

Attribution Based Economics (ABE) is a new paradigm for economics that revises several foundational assumptions governing today’s systems, including the nature of economic value and the origin of money. In this new paradigm, open source software becomes economically viable and, indeed, even financially favored over proprietary models. This talk describes our experiences implementing an early prototype for the Qi project, and also how Racket will be an essential part of the solution as ABE scales past the pilot stage.

Watch now: presentation

ramin_hal9001, to Lisp
@ramin_hal9001@emacs.ch avatar

The Scheme language's small size isn't necessarily a strength

So I was reading through part of the EmacsWiki and in the article on the Scheme programming language there are references to this ancient online debate from August of the year 2000 at the comp.lang.lisp Usenet group started by the late Erik Naggum, who was apparently a somewhat opinionated and inflammatory individual, who brought up the Scheme/Common Lisp debate on comment thread about someone being confused about how the CASE clause works.

The Scheme language standard at the time was R5RS, Naggum's argument is a common refrain from Scheme fans such as myself, and he was arguing with Kent Pitman ( @kentpitman ) who was one of the sub-committee chairs of the Common Lisp X3J13 standardization process, and is the editor and maintainer of the Common Lisp HyperSpec, an online form of the Common Lisp specification. Kent Pittman's reply I thought was very well-reasoned, and worth re-posting here (quote):

I just absolutely don't believe the Scheme standard is fairly cited as a model of a "better" standard. It is enormously vague on numerous matters of consequence. It omits really essential functionality that would be needed to write any seriously portable programs. It was stagnant for years on quibbles over some of the silliest syntax details. In my opinion, it's a toy language. There are real commercial Scheme implementations, but only by the sheer will of those implementers who've gone beyond the so-called standard and written in the things that the standard ought to have said in order to make the language finally useful. It achieves its "prettiness" and its "smallness" on the back of just plain leaving stuff out where it would appear to "clutter", and whatever you think of CL, I personally reject any claim that the Scheme is a model of improvement.

(end quote)

I wouldn't go so far as to call Scheme a "toy language" because the parts of the standard that are well-defined are solid and very useful. But yes, it seems the only useful implementations do solve these problems not addressed by the standard in completely different ways that makes it very difficult to write a Scheme program on one implementation that runs on another. Try to write one program that runs on MIT Scheme, Guile, Chez, Racket, Bigloo, Cyclone, Stklos, and Gambit. Try to even compute what set of SRFI (language extensions) are common to all of them. Most Scheme programmers have to pick just one implementation and stick to it without much hope of ever porting their programs to other implementations. It is possible to do it, easier than porting a program from Python to C++, but still not at all as easy as running the same Common Lisp program on SBCL, ECL, ABCL, or Franz.

So I do agree with @kentpitman that there are some pretty important details left up to the implementers simply because none of them could agree on what to do and punted the issue rather than resolve it. Later (after the aforementioned Usenet debate) R6RS would try to solve these issues, but that standard was mostly rejected by the larger part of the Scheme community due to a lack of consensus. Much of that work lives on in the SRFIs, while Chez Scheme (R. Kent Dybvig) seems to be sticking to R6RS and is one of the most well-respected Scheme implementations, and a kind of flagship of that standard.

I still have hope for R7RS-large though, which might end up being even larger than X3J13 when all is said and done. Unfortunately, recently John Cowan, chair of the R7RS-large standardization committee threw his hands up in resignation a few months ago after almost 10 years of trying to hammer-out consensus over details of the new R7RS-large standard. Daphne Preston Kendal ( @dpk ) has taken over and is fully capable of continuing the work.

It might be interesting if some Schemers could get together and write a new fully R7RS-compliant Scheme-to-Scheme compiler in R7RS-small Scheme, with all of the COND-EXPAND expressions in place to run on all of the major R7RS-compatible Scheme implementations. This compiler would simply translate its input into code that the host Scheme compiler can compile, deferring low-level implementation details to the host. The compiler should be one massive file that you could just load into any Scheme compiler and it just works. Then this compiler maybe, just maybe could become The Scheme Standard. A good starting point would be the work of Marc Nieper-Wißkirchen who has written Rapid Scheme which compiles R7RS Scheme to another host Scheme, but it only supports Chibi and Larceny as the hosts.

ramin_hal9001, to guix
@ramin_hal9001@emacs.ch avatar

Somebody uploaded video of the SICP lectures by Sussman and Steele recorded at MIT in 1986 to PeerTube!

Here ⮕ sicp_lectures@diode.zone

I don't know how long these videos have been on the Internet, but I am amazed that this is the first time I ever learned about their existence.

MenacingMecha, to badminton
@MenacingMecha@mastodon.gamedev.place avatar

question I had for the crowd:

Researching DSLs, with the use case of a configuration languages, but how would you go about communicating this with the main app?

Would part of the DSL be to then spit out JSON (etc.) to be consumed, so the DSL just serves as a clean, correct way to author configuration?

alephoto85, to programmazione
@alephoto85@livellosegreto.it avatar

Perchè Imparare Racket? Il Punto Di Vista Di Uno Studente.

@programmazione

Da qualche tempo mi sto interessando alla famiglia di linguaggi LISP/SCHEME. Cercando informazioni in rete ho trovato quest’articolo che mi è sembrato molto interessante e così, con il permesso dell’autore Micah Cantor, ho pensato di pubblicare la mia traduzione.
L’ articolo originale, “Why learn Racket? A student’s perspective” potete leggerlo sul suo blog.

https://www.alessandroliguori.it/post/perch%C3%A8_studiare_racket/

frescosecco, to badminton
@frescosecco@mastodon.social avatar

Is Racket/DrRacket a good system to get a 10-year old into programming?
#Racket #Racketlang

racketlang, to badminton
@racketlang@functional.cafe avatar

RacketCon presentation “Sawzall: A grammar for chopping up data”

by @hazel

Sawzall, inspired heavily by dplyr and the relational algebra. Sawzall builds on top of Alex Harsanyi’s data-frame package, but provides a set of operations that are designed to compose and avoid mutating the original data-set, leading to a natural style of data manipulation following the idea of "do this, then that".

Find more great presentations and details of RacketCon 2023 at https://con.racket-lang.org/

Sawzall: A grammar for chopping up data

https://youtu.be/zza0fb36c-U
https://docs.racket-lang.org/sawzall/index.html

racketlang, to badminton
@racketlang@functional.cafe avatar

Zuo: A Tiny Racket for Scripting

You should use Racket to write scripts. But what if you need something much smaller than Racket for some reason?

Zuo is a tiny Racket with primitives for dealing with files and running processes, and it comes with a make-like embedded DSL.

https://github.com/racket/zuo

Documentation: https://docs.racket-lang.org/zuo/index.html

Zuo is also available as a guix package!: https://packages.guix.gnu.org/packages/zuo

louis, to emacs
@louis@emacs.ch avatar

TIL: geiser brings a REPL server package for Racket where you can connect to a running Racket REPL remotely over TCP.

And I thought that was exclusive to Common Lisp.

racketlang, to badminton
@racketlang@functional.cafe avatar

Essentials of Compilation
An Incremental Approach in Racket
By Jeremy G. Siek

https://mitpress.mit.edu/9780262047760/essentials-of-compilation/

@jeremysiek

racketlang, to badminton
@racketlang@functional.cafe avatar

Machine Learning Toolkit accompanying The Little Learner by Daniel P. Friedman and Anurag Mendhekar

https://github.com/themetaschemer/malt

https://www.thelittlelearner.com

racketlang, to badminton
@racketlang@functional.cafe avatar
racketlang, to random
@racketlang@functional.cafe avatar

Resyntax: A macro powered refactoring tool

https://youtu.be/IoQBNh_NzQM

Want to try it?

raco pkg install --installation resyntax<br></br>

The --installation flag (shorthand for --scope installation) installs packages for all users of a Racket installation and ensures resyntax is in your $PATH.

Documentation: https://docs.racket-lang.org/resyntax/index.html

jbzfn, to random
@jbzfn@mastodon.social avatar

λ Racket version 8.9 is now available from
@racketlang

「 Some languages convey ideas more easily than others. And some programming languages convey solutions better than others. Therefore Racket is a language for making languages, so that a programmer can write every module in a well-suited language 」


https://racket.discourse.group/t/racket-version-8-9-is-now-available-from-https-download-racket-lang-org/1941

racketlang, to random
@racketlang@mastodon.social avatar

dispatch - Julia-style multiple dispatch in Racket

“Multiple dispatch is the ability to define multiple implementations of a function, chosen at runtime based on the arguments to each call. The dispatch package brings this to Racket, allowing lexically separate but associated definitions: https://racket.discourse.group/t/julia-style-multiple-dispatch/1936?u=spdegabrielle

@a11ce

  • All
  • Subscribed
  • Moderated
  • Favorites
  • anitta
  • InstantRegret
  • mdbf
  • ngwrru68w68
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • osvaldo12
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • JUstTest
  • tacticalgear
  • ethstaker
  • modclub
  • cisconetworking
  • tester
  • GTA5RPClips
  • cubers
  • everett
  • megavids
  • provamag3
  • normalnudes
  • Leos
  • lostlight
  • All magazines