Pyret has lots of nice ideas, looking forward to see it evolve. That said, the title of this post is a bit misleading so I wanted to correct it. The group of people who develop Racket and Pyret are mostly disjoint. I'm…
> but looking through the docs on typed racket it certainly looks like it adds java-style static typing It's unclear what you mean by "Java-style static typing" then, because the Java type system and Typed Racket's type…
Typed Racket definitely doesn't add a "Java-style static typing" system at all. Its type system is quite specifically designed to accommodate the kinds of programming idioms you find in Racket programs (via occurrence…
> Racket is really very complex thing with many man-decades of research behind it and even where it is being advertised, it looks like a typical "academic" thing. As a fellow Racketeer, I'm curious: what do you think…
It does[1], but it's not necessarily preferred. The whole point of Typed Racket is that you can write your program in (untyped) Racket originally (maybe starting out as a small script), and then add types if you need…
I use emacs with evil-mode (very good vim emulation) to program in Racket. The advantage of emacs is that it has paredit, geiser, and other useful plugins.
> In contrast, SBCL uses tagless float arrays, so that array operations tend to be cache friendly. This is also the case in Racket. http://docs.racket-lang.org/reference/flonums.html#%28part._...
> Last time I tried Racket, there wasn't even a library for JSON. That's changed since then: http://docs.racket-lang.org/json/index.html
> and a better abstract model for macros than even Racket's stellar syntax-parse. To clarify a little bit, `syntax-parse` is actually not its own model for macros but is a sophisticated front-end for Racket's underlying…
I would also look at PLAI (Programming Languages: Application and Interpretation): http://cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04... It's an excellent free undergraduate-level PL textbook that covers a lot…
A good guide to start out with Racket's macro system is Greg Hendershott's excellent Fear of Macros tutorial: http://www.greghendershott.com/fear-of-macros/
> The only thing I really miss from Clojure is the syntactic support for maps and vectors, and the pervasive destructuring of said same. What do you mean by syntactic support for maps and vectors?
> and Typed Racket seems to be going nowhere. To the contrary, Typed Racket is under active development and new Racket libraries are written using it. I don't know where you got the impression that it's going nowhere,…
> No email, though (yet). Actually, it does do e-mail. :) https://github.com/mflatt/sirmail Or if you want SMTP/IMAP libraries, you can look here: http://docs.racket-lang.org/net/
> (which is not to say that Clojure or Racket are not great languages, but they are missing some of the nicer CL features). Any examples? Just curious.
> Who's using this in production? Here are two examples that have been presented at CUFP. The Starfire Optical Range[1, 2] uses it in production, I think as part of the control software for their telescopes. Naughty…
> Now, admittedly, not all the productivity gain is from types. However, they certainly help me, not just in making the code robust but also in writing it in the first place. And typeclasses actually do make the…
> AFAICT there is not a well-understood definition of first-class outside of "first-class functions." Why not just the same notion of "first-class" as functions? In other words, that the feature is actually…
In Racket, any custom data type can be turned into a function by using the `prop:procedure` structure type property. It's usually not done with things like maps and sets because this kind of "punning" is not idiomatic.…
Re: macros, this is why tool support for macros is important. Many good Lisps come with macro debuggers that let you reason about the macro expansion. A good example is Racket's macro stepper:…
That's not a problem though: delimited continuations are more expressive than undelimited ones anyway and often are a more natural way to solve programming problems.
Probably the best way to learn what an evaluation context is to read the book you've linked to there. Alternatively, it's basically what the Racket reference section on the evaluation model calls a "continuation":…
The title is misleading since the blog author admits to not having tried Racket recently. IMHO, Racket fixes the author's key complaint about documentation by having a Guide (separate from Reference) with many examples:…
I think you'd be interested in Bootstrap World, which is basically what you described: http://www.bootstrapworld.org/
There are two features that take advantage of hardware parallelism: futures & places, which work at different granularities. You can find the guide entry on them here:…
Pyret has lots of nice ideas, looking forward to see it evolve. That said, the title of this post is a bit misleading so I wanted to correct it. The group of people who develop Racket and Pyret are mostly disjoint. I'm…
> but looking through the docs on typed racket it certainly looks like it adds java-style static typing It's unclear what you mean by "Java-style static typing" then, because the Java type system and Typed Racket's type…
Typed Racket definitely doesn't add a "Java-style static typing" system at all. Its type system is quite specifically designed to accommodate the kinds of programming idioms you find in Racket programs (via occurrence…
> Racket is really very complex thing with many man-decades of research behind it and even where it is being advertised, it looks like a typical "academic" thing. As a fellow Racketeer, I'm curious: what do you think…
It does[1], but it's not necessarily preferred. The whole point of Typed Racket is that you can write your program in (untyped) Racket originally (maybe starting out as a small script), and then add types if you need…
I use emacs with evil-mode (very good vim emulation) to program in Racket. The advantage of emacs is that it has paredit, geiser, and other useful plugins.
> In contrast, SBCL uses tagless float arrays, so that array operations tend to be cache friendly. This is also the case in Racket. http://docs.racket-lang.org/reference/flonums.html#%28part._...
> Last time I tried Racket, there wasn't even a library for JSON. That's changed since then: http://docs.racket-lang.org/json/index.html
> and a better abstract model for macros than even Racket's stellar syntax-parse. To clarify a little bit, `syntax-parse` is actually not its own model for macros but is a sophisticated front-end for Racket's underlying…
I would also look at PLAI (Programming Languages: Application and Interpretation): http://cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04... It's an excellent free undergraduate-level PL textbook that covers a lot…
A good guide to start out with Racket's macro system is Greg Hendershott's excellent Fear of Macros tutorial: http://www.greghendershott.com/fear-of-macros/
> The only thing I really miss from Clojure is the syntactic support for maps and vectors, and the pervasive destructuring of said same. What do you mean by syntactic support for maps and vectors?
> and Typed Racket seems to be going nowhere. To the contrary, Typed Racket is under active development and new Racket libraries are written using it. I don't know where you got the impression that it's going nowhere,…
> No email, though (yet). Actually, it does do e-mail. :) https://github.com/mflatt/sirmail Or if you want SMTP/IMAP libraries, you can look here: http://docs.racket-lang.org/net/
> (which is not to say that Clojure or Racket are not great languages, but they are missing some of the nicer CL features). Any examples? Just curious.
> Who's using this in production? Here are two examples that have been presented at CUFP. The Starfire Optical Range[1, 2] uses it in production, I think as part of the control software for their telescopes. Naughty…
> Now, admittedly, not all the productivity gain is from types. However, they certainly help me, not just in making the code robust but also in writing it in the first place. And typeclasses actually do make the…
> AFAICT there is not a well-understood definition of first-class outside of "first-class functions." Why not just the same notion of "first-class" as functions? In other words, that the feature is actually…
In Racket, any custom data type can be turned into a function by using the `prop:procedure` structure type property. It's usually not done with things like maps and sets because this kind of "punning" is not idiomatic.…
Re: macros, this is why tool support for macros is important. Many good Lisps come with macro debuggers that let you reason about the macro expansion. A good example is Racket's macro stepper:…
That's not a problem though: delimited continuations are more expressive than undelimited ones anyway and often are a more natural way to solve programming problems.
Probably the best way to learn what an evaluation context is to read the book you've linked to there. Alternatively, it's basically what the Racket reference section on the evaluation model calls a "continuation":…
The title is misleading since the blog author admits to not having tried Racket recently. IMHO, Racket fixes the author's key complaint about documentation by having a Guide (separate from Reference) with many examples:…
I think you'd be interested in Bootstrap World, which is basically what you described: http://www.bootstrapworld.org/
There are two features that take advantage of hardware parallelism: futures & places, which work at different granularities. You can find the guide entry on them here:…