This looks like a very well-written, easy introduction to making simple, dynamic programming languages (not surprising given the author's writing background). But everyone writes about how to build these kinds of basic Forths, or Lisps, or reverse polish notation calculators. To be honest, once you've learned the basic technique, writing a toy dynamic language interpreter is pretty easy. Even adding a toy JIT isn't v…
Beautiful Racket
21–30 of 55 posts
Re: Beautiful Racket
#22Earlier quoted context omitted.
Not sure which part isn't clear. First, syntax objects are data, but with extra information, such as binding information, source location, etc. Second, the #' form (written out it's called `syntax`) is similar to the ' form (written out as `quote`). But the first one includes the extra information to make a syntax object. Also, it has an extra character, which the chapter points out can be seen as going along with th…
This is why I wish I could ask comments about books without going to Stack Overflow. Is there a publishing system that allows you to put up a work as it is being produced and solicit input from people on what they find unclear?
Re: Beautiful Racket
#23> If a datum sounds like a syntax object, that’s no coincidence — a syntax object is just a datum with some extra information attached. The #' prefix notation we used for a syntax object now connects logically: we can think of the # as representing the extra info that gets attached to the datum This is not clear, can someone explain please?
Re: Beautiful Racket
#24Earlier quoted context omitted.
Not sure which part isn't clear. First, syntax objects are data, but with extra information, such as binding information, source location, etc. Second, the #' form (written out it's called `syntax`) is similar to the ' form (written out as `quote`). But the first one includes the extra information to make a syntax object. Also, it has an extra character, which the chapter points out can be seen as going along with th…
This is why I wish I could ask comments about books without going to Stack Overflow. Is there a publishing system that allows you to put up a work as it is being produced and solicit input from people on what they find unclear?
Re: Beautiful Racket
#25Earlier quoted context omitted.
Not sure which part isn't clear. First, syntax objects are data, but with extra information, such as binding information, source location, etc. Second, the #' form (written out it's called `syntax`) is similar to the ' form (written out as `quote`). But the first one includes the extra information to make a syntax object. Also, it has an extra character, which the chapter points out can be seen as going along with th…
This is why I wish I could ask comments about books without going to Stack Overflow. Is there a publishing system that allows you to put up a work as it is being produced and solicit input from people on what they find unclear?
Re: Beautiful Racket
#26One of my favorite classes in college was designed around building a C-like language interpreter (not compiler, I know, but the syntax was C-like) in Racket. It was a fantastic, eye-opening experience. However, DrRacket the IDE was a huge pain for me. I often felt that what the language offered in power and sophistication, its development environment lacked.
So my question is: What about DrRacket didn't seem like enough for your project?
Re: Beautiful Racket
#27Earlier quoted context omitted.
Either or any would be great, particularly if they're online and not books (although I'd buy a good book that covered those topics in depth). Particularly an approachable intro to Hindley-Milner and building a toy/mini-ML, and type checking in general. All the better if it's in Racket, or some ML. Actually, do you know of any examples of ML-type languages, or any statically-typed languages, that are written in Racket…
It looks like Pyret was first written in Racket. I think it's optionally typed, though. https://github.com/brownplt/pyret-lang-resugarer
Re: Beautiful Racket
#28Earlier quoted context omitted.
Are you looking for general references on implementing type checkers and ML-like languages? Or how to implement those as languages in Racket specifically?
Either or any would be great, particularly if they're online and not books (although I'd buy a good book that covered those topics in depth). Particularly an approachable intro to Hindley-Milner and building a toy/mini-ML, and type checking in general. All the better if it's in Racket, or some ML. Actually, do you know of any examples of ML-type languages, or any statically-typed languages, that are written in Racket…
Re: Beautiful Racket
#29This looks like a very well-written, easy introduction to making simple, dynamic programming languages (not surprising given the author's writing background). But everyone writes about how to build these kinds of basic Forths, or Lisps, or reverse polish notation calculators. To be honest, once you've learned the basic technique, writing a toy dynamic language interpreter is pretty easy. Even adding a toy JIT isn't v…
There was a great textbook by Sam Kamin around 1990 ( http://loome.cs.uiuc.edu/kamin/pubs.html ). I think that might help.
ftp://ftp.cs.utexas.edu/pub/garbage/cs345/schintro-v14/schintro_toc.html
Yes, an ftp url.
Re: Beautiful Racket
#30> If a datum sounds like a syntax object, that’s no coincidence — a syntax object is just a datum with some extra information attached. The #' prefix notation we used for a syntax object now connects logically: we can think of the # as representing the extra info that gets attached to the datum This is not clear, can someone explain please?
This is the only time I've heard "datum" used outside the context of GIS.