
I’m sure that I will hit a wall with lisp, but so far it is the most intuitive language I have come across. I’m not a smart person, I just study things intensely, but this just makes sense to me. I am reading Structure and Interpretation of Computer Programs right now and everything is making sense. Am I having a stroke?

Hi Abby, I don’t think there is anything wrong. Lisp/Scheme are wonderful languages and I am sure you will enjoy every minute.

Ty mwarren :slightly_smiling_face: It’s just frustrating after trying to learn all of the objects-oriented languages and then trying to care about them. maybe I’m home finally

I certainly found it refreshing after doing Java most of my career.

I know java the best out of the languages I have come across

@abbyrjones72 LISP has a level of elegance which appeals to many of us. Have fun!


However, in practice (in my experience) many companies have trouble using it, particularly given the large prevalence of knowledge of other languages. See also https://xkcd.com/224/ :slightly_smiling_face:

The Lisp Cycles one is probably my favourite XKCD.

ty zzamboni…my background is a masters in health and life science analytics, and I saw some really sweet tools for statistical work with Racket. that’s what drew me in

Racket has a fantastic ecosystem. I only recently started learning it, but I’m enjoying it very much. I learned a bit of Clojure before. I was using Riemann (http://riemann.io) at work, which is what got me started in it. Also LISP, very elegant, also large ecosystem (thanks to the seamless Java integration), but a different “feel” altogether (maybe because of the Java integration)

I kind of like where Lisp/Scheme/Racket is right now. Of course, I’d be thrilled if Racket suddenly took off. But as it stands, it’s sort of like a secret weapon, if you’ll pardon my reference. I’m planning to disrupt the blockchain smart contract language space where DSLs make so much sense.

my ultimate goal is to write another computer language and compiler/interpreter. I want to understand how languages work.

Then you’ve come to the right place. I’m new here as well but so far have had a great experience with the community. @mflatt was kind enough to agree to speak with the developers at my company about Racket and DSLs a few weeks back. That’s the kind of community Racket has.

Thank you all so much for the warm welcome.

If you don’t mind me asking, what is a DSL?

Domain Specific Language.

tyvm

Racket has explicit facilities for building DSLs, so it’s great for your idea of writing a new language. I am precisely at the moment halfway through @mflatt’s paper “Creating Languages in Racket” (https://queue.acm.org/detail.cfm?id=2068896), which is an easy read but gives a very good progression of how you can build more and more sophisticated/specialized languages, with concrete examples. Also very good is @mbutterick’s “Beautiful Racket” (https://beautifulracket.com).

Thanks for this. I will start reading this today. I want to finish the first chapter in SICL

I’m curious to know what people think about this: call-with-x
is a good name for functions that take a procedure. with-x
is a good name for syntax that sugar away the lambda of a call-with-x
. This is a good naming convention. (Don’t follow the bad example of the with-{input output}-from-file
functions. :smile:). To avoid a huge bike-shedding thread, I’ll add a couple reaction buttons you can just click (unless you have any commentary).

I wish I knew enough to provide a reaction :joy:

@abbyrjones72 I agree, I cannot possibly comment.

@mark.warren :slightly_smiling_face:

I think I even put this on the wiki page for Racket 2 as an inconsistency in the stdlib we should fix up

@abbyrjones72 That’s not generally how opinions work :open_mouth:

hmmm. a call-with-handlers
that took a dict of predicates and handler functions could be useful. not sure if there’s a good way to remove the lambdas from with-handlers
though.

@mbutterick Point. I imagine that example is: Say you wrote a simple with-exception-handler
syntax variant of call-with-exception-handler
. I think you’d decide something like with-handlers
is what you’d actually find more useful?

how does using #:escape
work with examples
? I tried using it, but just got document building errors: @(examples
#:eval (make-evaluator) #:once
#:escape UNSYNTAX
(define rec
(UNSYNTAX example-record))
(record-ref rec '#:name)
(record-ref rec '#:fur-color))
The error I get from raco setup is: raco setup: error: during building docs for <pkgs>/rebellion/main.scrbl
raco setup: examples: exception raised in example
raco setup: error: "UNSYNTAX: undefined;\n cannot reference an identifier before its definition\n in module: top-level"

I’ve only been able to use escapes for examples
within the show-datum
of an eval:alts

maybe the escape form is only meant to work with scribble parts / elements and there isn’t any way to use an escape with the code fragments being sent to the evaluator

huh, with-syntax
is a weird name now that you mention it